首页 > 解决方案 > 我怎样才能使这个功能更优雅

问题描述

我有这个功能:

wrap :: Text -> [Text] -> Text
wrap x = intercalate "" . map ((<> x) . (x <>))

其目的是用给定的字符串包装列表的每个元素并将它们连接在一起。

map 的第一个参数周围的括号让我很恼火,“”的使用也是如此。所以我想知道是否有更优雅(或通用,我猜)的方式来表达这个功能?

标签: functionhaskellparametric-polymorphism

解决方案


(从我的评论中复制,因此可以将问题标记为已回答。)

您可以使用foldMap f而不是intercalate "" . map f. 请注意,intercalate ""它等效于 Data.Text.concat。


推荐阅读