0

Erlang 学習 2 日目。任意の述語とリスト (ユーザーによって渡される) を受け取り、述語が true または false を返し、結果をリストに格納するかどうかをチェックする単純なマップ関数を作成することによって、Erlang で Map を使用する基本を学ぼうとしています。

したがって、ユーザーが(> 3)述語として渡され、リストに[3,4,5]目的の出力が含まれている場合は、 [false, true, true].

これは私が試したものです:

applyMap (P, LST) -> lists:map(P LST).  

これを行う方法についての提案に感謝します。

よろしくお願いします!

4

2 に答える 2

4

への呼び出しでとの,間が抜けているだけだと思います。これを試してください:PLSTlists:map

applyMap (P, LST) -> lists:map(P, LST).

匿名関数fun(X) -> X > 3 endを に渡すとapplyMap、目的の出力が得られるはずです。

例:

applyMap (fun(X) -> X > 3 end, LST).
于 2013-04-17T01:10:18.670 に答える
0

2 つの問題があります。1 つ目は、Pとの間のコンマが抜けていることLST、2 つ目は、 のような Haskell スタイルのカリー化された関数を使用できないことです(> 3)lists:map((> 3), [1,2,3])Erlang では正しくありません。

Haskell では(> 3)、 のカリー化された形式です\n -> n > 3。Erlang では、明示的に記述する必要があります。

lists:map(fun(N) -> N > 3 end, [2,4,6])
于 2013-04-17T19:54:27.397 に答える