Project Eulerの質問に対する私の試みによって生成された別の質問(前の質問の続き)。次の行が理解できません。
print (maximum (map (product . take 13) (tails number)))
具体的には
map (product . take 13) (tails number)
ghci の map の最初の引数の型シグネチャは [c] -> c:
ghci> :t (product . take 13)
(product . take 13) :: Num c => [c] -> c
from ghciの型シグネチャmap (product . take 13)
は [[b]] -> [b] です:
ghci> :t map (product . take 13)
map (product . take 13) :: Num b => [[b]] -> [b]
map の最初の引数は関数でなければならないので、 [[b]] はリストのリストを参照するのではなく、 によって生成された (部分的に適用された) 関数のリストを参照し(product . take 13)
、2 番目の引数はから来る部分関数 (tails number)
?