私はグラハム・ハットンによってHaskellでプログラミングを読んでいると、それは第13章では、次のコードを示します:構文どこブロック
import Control.Applicative
import Data.Char
{- some code omitted -}
newtype Parser a = P (String -> [(a, String)])
item :: Parser Char
item = P (\ input -> case input of
[] -> []
x:xs -> [(x,xs)])
three :: Parser (Char,Char)
three = pure g <*> item <*> item <*> item
where g a b c = (a,c)
私は最後の行
where g a b c = (a,c)
を理解することに苦労していますが
3行にはParser(Char、Char)というタイプがありますが、gabcは何を表しているのでこの行が存在することを理解していますか?構文はどのように有効ですか?私はケースのような場所を見るのに慣れています
f :: s -> (a,s)
f x = y
where y = ... x ...
ここで、各記号xとyはwhere宣言の前に現れます。