这是我试图理解的 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
简而言之,该程序获取一个字符串元组列表并生成一个条目对象列表。
但是,我不喜欢 lambda 函数,map
我想创建一个常规函数来替换它。
我尝试了这个,但它给了我一个错误,即 x 和 y 不在范围内:
entryBuilder x y = Entry x y (length x)
entries = map (entryBuilder x y) englishToFrench
谁能告诉我如何转换 lambda 函数以及一般方法是什么?