我在Haskell 尝试了一些问题(在Spoj),我偶然发现了一些有输入形式的问题:
testcase_1
testcase_1_continued
testcase_2
testcase_2_continued
Run Code Online (Sandbox Code Playgroud)
要么
testcase_1 testcase_1_continued
...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,只能通过使用words或lines在输入上然后映射求解器函数来获得类似的东西来解决这个问题
[solver test1, solver test2, ...]
Run Code Online (Sandbox Code Playgroud)
一个人应该使用一个带有两个参数的函数,这两个参数是两个列表元素,一个接一个,并得到:
[solver test1 test1continued, solver test2 test2continued, ...]
Run Code Online (Sandbox Code Playgroud)
所以我很高兴找到一个类似的函数,map一次应用一个函数2的参数.我一直无法在Hoogle上找到任何东西,而且编写这样的函数也很容易,我正在寻找更多问题的一般方法.或者,如果我的方法(坚持map)肯定是错误的,那么我也可以指出正确的方向.
我实际上发现实现一个函数map2非常有用,它将一个函数映射到一个列表,一次只能处理两个参数:
map2 f [a,b,c,d] ==> [f a b, f c d]
Run Code Online (Sandbox Code Playgroud)
使用chunksOf.
> map (\[x, y] -> x + y) . chunksOf 2 $ [1..30]
[3,7,11,15,19,23,27,31,35,39,43,47,51,55,59]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |