これが私が理解しようとしているHaskellプログラムのスニペットです:
englishToFrench = [("the", "le"),("savage", "violent"),("work", "travail"),
("wild", "sauvage"),("chance", "occasion"),]
data Entry = Entry {word :: String,
definition :: String,
length' :: Int}
deriving Show
listOfEntries = map (\(x, y) -> Entry x y (length x)) englishToFrench
簡単に言うと、プログラムはStringタプルのリストを取得し、Entryオブジェクトのリストを作成します。
ただし、のラムダ関数は好きではないので、map
それを置き換える通常の関数を作成したいと思います。
これを試みましたが、xとyがスコープにないというエラーが発生します。
entryBuilder x y = Entry x y (length x)
entries = map (entryBuilder x y) englishToFrench
ラムダ関数を変換する方法と一般的な方法を教えてもらえますか?