将美元符号表示法转换为点符号

时间:2018-05-12 18:47:00

标签: haskell

如何使用点表示法将以下内容添加到同一函数中?

 print $ map (`elem` Emoji.table) keywords

1 个答案:

答案 0 :(得分:4)

您可以一次转换一下表达式:

print $ map (`elem` Emoji.table) keywords
print (map (`elem` Emoji.table) keywords)
(print . map (`elem` Emoji.table)) keywords
print . map (`elem` Emoji.table) $ keywords

当您拥有f $ g x时,您拥有f (g x),这意味着您拥有(f . g) xf . g $ x。在上面的示例中,fprintgmap ('elem' Emoji.table),使用{{表示组合时,似乎无法获得任何结果1}},但在其他情况下可能更具可读性。

例如,如果您正在编写无点函数:

.

然后你也可以eta-reduce

printWithEmojis :: Keywords -> IO ()
printWithEmojis keywords = print $ map (`elem` Emoji.table) keywords