haskell - 将 splitAt n 列表分配给 haskell 中的 pair(x,y)
问题描述
我有一个语句[splitAt n list | n <- [1..((length list)-1)]
,当在 [1,2,3,4] 上运行时,会给出[([1],[2,3,4]),([1,2],[3,4]),([1,2,3],[4])]
. 我想将每一对分配给变量 x 和 y
例子:
x=[1]
y=[2,3,4]
x=[1,2]
y=[3,4]
etc
如何做到这一点?
解决方案
您可以在列表推导中的 asplitAt
内进行模式匹配(在这种情况下,在由返回的对上)let
,所以您可以这样做
[ doSomethingWith x y | n <- [1..((length list)-1), let (x, y) = splitAt n list ]
推荐阅读
- vue.js - 在 Vue.js 中进行样式设置的最佳且简单的方法是什么?我可能认为引导程序是最好的选择
- wordpress - Wordpress:如何只允许特定角色进行一些评论操作(删除、编辑...)?
- c++ - 在下面的代码中,外部块 m 如何给出输出 20
- hybris - 访问 Hybris 后台会导致系统冻结几分钟
- php - api json响应不是以数组形式出现
- vim - 跳转到系统verilog宏的问题`使用ctags在VIM中定义
- php - Laravel 中受密码保护的视图
- javascript - 为什么在 package.json 中添加了一个空行
- ignite - 点燃服务器:“以下缓存的所有服务器节点都已离开集群”
- angular - Angular:*ngFor 在父组件或子组件中?