ある種の「初心者向け ML」ガイドを探しています。これまでのところ、Google のおかげで、あいまいなメーリング リストや頭のおかしいテキストにたどり着きました。
問題は、これまで関数型プログラミングの経験がまったくなく、概念に頭を悩ませることが、予想よりもはるかに困難であることが判明したことです。たとえば、私が今やろうとしているタスク (はい、大学 :)) は、2 つのリスト (a,b) と (c,d) の間のマッピングを行うことで、結果は (a,d) のリストになります) b = c のペアから。
私が通常行うことは次のとおりです。
result = []
for each x in list1 do
for each y in list2 do
if x.b == y.c result.add (x.a, y.d)
end
end
しかし、私はそのようなものを SML で実装することを始めることさえできません。たとえば、ネストされたリストを反復処理できることを知っていますmap f list
。ただし、ランタイム (SML/NJ) は、パラメーターとしてリスト要素のみを取る関数に対してのみこれを受け入れます。しかし、一度に 2 つのリストの 1 つしか操作できない場合、どの要素を返す必要があるかを知るにはどうすればよいでしょうか?
私は、この種のことを、できれば大きな親しみやすい文字と多くのコード例で説明するリソースを切実に必要としています:/