function - 我怎样才能使这个功能更优雅
问题描述
我有这个功能:
wrap :: Text -> [Text] -> Text
wrap x = intercalate "" . map ((<> x) . (x <>))
其目的是用给定的字符串包装列表的每个元素并将它们连接在一起。
map 的第一个参数周围的括号让我很恼火,“”的使用也是如此。所以我想知道是否有更优雅(或通用,我猜)的方式来表达这个功能?
解决方案
(从我的评论中复制,因此可以将问题标记为已回答。)
您可以使用foldMap f
而不是intercalate "" . map f
. 请注意,intercalate ""
它等效于 Data.Text.concat。
推荐阅读
- ios - 如何使用 Alamofire 在多部分表单数据中附加数组?
- javascript - 无法在angular2中循环json对象
- php - laravel 5.2 产量和部分无法正常工作
- sql - SQL Server - 获取活动日期期间的正确价格
- opencv - 将图像与 opencv 进行比较
- android - 推送通知不适用于装有 Android 6.0 MarshMallow 的三星、华硕和联想设备
- javascript - 获取父母的钥匙
- ios - 在单元格的 ImageView 中设置图像时的 CollectionView NSInvalidArgument
- laravel - Laravel Nginx 403 被禁止
- android - Android RecyclerView 复选框会自行检查