【发布时间】:2016-09-11 10:43:41
【问题描述】:
我在 Julia 中使用迭代和理解,并尝试编写简单的问题:找到所有小于 10 且乘积小于 10 的数字对。这是我的第一次尝试:
solution = filter((a,b)->a*b<10, product(1:10, 1:10))
collect(solution)
但我收到错误“参数数量错误”。这是意料之中的,因为过滤器内的匿名函数需要两个参数,但它得到一个元组。 我知道我能做到
solution = filter(p->p[1]*p[2]<10, product(1:10, 1:10))
但它看起来不像上面的那样好。有没有办法告诉我 (a,b) 是元组类型的参数并使用类似于第一个示例中的语法的东西?
【问题讨论】:
-
对于这个具体的例子,你也可以调整函数的主体:
a -> prod(a) < 10,但是@tup这个例子是非常巧妙的想法。
标签: filter tuples julia iterable