在Clojure中,我想结合两个列表来给出一对对,
> (zip '(1 2 3) '(4 5 6))
((1 4) (2 5) (3 6))
Run Code Online (Sandbox Code Playgroud)
在Haskell或Ruby中,该函数称为zip.实现它并不困难,但我想确保我没有错过Core或Contrib中的函数.
Core中有一个zip命名空间,但它被描述为提供对Zipper功能技术的访问,这似乎不是我所追求的.
以这种方式在Core中是否存在用于组合2个或更多列表的等效函数?
如果没有,是不是因为有一种惯用的方法使得函数不需要?
我正在使用Mustache模板库并尝试生成逗号分隔列表而不带尾随逗号,例如
红色,绿色,蓝色
在给定结构的情况下,使用尾随逗号创建列表很简单
{
"items": [
{"name": "red"},
{"name": "green"},
{"name": "blue"}
]
}
Run Code Online (Sandbox Code Playgroud)
和模板
{{#items}}{{name}}, {{/items}}
Run Code Online (Sandbox Code Playgroud)
这将解决
红色,绿色,蓝色,
但是,在没有尾随逗号的情况下,我无法看到表达案例的优雅方式.我总是可以在将代码传递到模板之前在代码中生成列表,但我想知道库是否提供了另一种方法,例如允许您检测它是否是模板中列表中的最后一项.
我发现的唯一方法是直接投射:
> $numberAsString = "10"
> [int]$numberAsString
10
Run Code Online (Sandbox Code Playgroud)
这是Powershell的标准方法吗?是否期望在之前进行测试以确保转换成功,如果是,如何?
在rails 3项目目录中从终端运行rake test命令时,测试结果输出不会着色.因此,它无法一目了然地解释.
有没有办法获得结果的颜色输出,因为你可以得到rspec?
>rspec --colour
Run Code Online (Sandbox Code Playgroud) Erlang有向图模块通过改变状态让我感到惊讶.
在Erlang中处理其他数据结构模块时,例如sets模块,传入的数据结构的实例是未修改的.该函数返回一个新的,更改的版本,例如
>S = sets:new().
>sets:size(S).
0
>T = sets:add_element(S, "element").
>sets:size(S).
0
>sets:size(T).
1
Run Code Online (Sandbox Code Playgroud)
这不是处理有向图模块时的行为.
>G = digraph:new().
>digraph:no_vertices(G).
0
>digraph:add_vertex(G, "vertex").
>digraph:no_vertices(G).
1
Run Code Online (Sandbox Code Playgroud)
首先,为什么有向图库在这方面有所不同?
其次,更重要的是,digraph模块如何针对现有绑定添加新状态?
我假设状态存储在另一个进程中,digraph模块使用现有的和未改变的绑定G进行识别.是这种情况吗?或者是否有其他方法可以修改与绑定相关联的状态?