私は SML を学ぼうとしていますが、私の教授ノートのいくつかは、map
「型 ('a -> 'b) -> ('a list -> 'b list) を持つ関数」について述べています。彼は続けて、これは「'as を 'bs... に変換する関数を私に与えてください」という意味であると説明しています。
ただし、実装は次のようになります。
fun map f [] = []
| map f (a::l) = (f a)::(map f l)
これは 2 つの引数に相当するように見えます (技術的には sml のすべてが 1 つの引数しかとらないことはわかっていますが、タプルまたはカリー化を使用すると 2 のように見える可能性があります)。関数とリストを取っているようです。ただし、上記の説明では、関数を取っているだけのように聞こえます。私は何が欠けていますか?