如何使用点表示法将以下内容添加到同一函数中?
print $ map (`elem` Emoji.table) keywords
答案 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) x
或f . g $ x
。在上面的示例中,f
为print
而g
为map ('elem' Emoji.table)
,使用{{表示组合时,似乎无法获得任何结果1}},但在其他情况下可能更具可读性。
例如,如果您正在编写无点函数:
.
然后你也可以eta-reduce:
printWithEmojis :: Keywords -> IO ()
printWithEmojis keywords = print $ map (`elem` Emoji.table) keywords