>>72
初心者なので考えてもまだ理解できない。
今はなんとかこれで出来ないかと苦戦中。
type Keisan = [Moji]
data Moji = Kazu Double | Tasu | Hiku
deriving (show)

-- only Tasu or Hiku in a list [Kazu 0.0, Tasu, Kazu 1.0, Hiku, Hiku, Kazu 0.5]
-- == [0.0 + 1.0 - -0.5] -> [Kazu 0.5]
tokenizer :: Keisan -> Moji
tokenizer shiki = Kazu (convMoji shiki)

convMoji :: (Ord a) => Moji -> a
convMoji moji
| moji == Tasu = +
| moji == Hiku = -
| moji == (Kazu x) = x