你能直接在 Ruby 中解构函数参数吗:
def get_distance(p1,p2)
x1,y1 = p1
x2,y2 = p2
((y2-y1)**2 + (x2-x1)**2)**0.5
end
Run Code Online (Sandbox Code Playgroud)
我尝试了显而易见的:
def get_distance([x1,y1],[x2,y2])
((y2-y1)**2 + (x2-x1)**2)**0.5
end
Run Code Online (Sandbox Code Playgroud)
但是编译器不喜欢那样。
这是一个hack(cogsRpm用户提供的函数,应该匹配go的输出):
propCheck ns = cogsRpm (ns ++ [42]) == go (ns ++ [42])
Run Code Online (Sandbox Code Playgroud)
我添加了42来停止生成零长度列表的快速检查.它也可能会失败,因为它也不应该在那里有零.
我阅读了文档,但是没有足够的例子来解析如何实际使用它们.我确实设法在另一个案例中得到这个:
prop_check (Positive x) (Positive y) = updateHealth x y == if y > x then 0 else x-y
Run Code Online (Sandbox Code Playgroud)
这迫使阳性,我试图结合了一堆东西来获得listOf1和NonZero,但我无法找出语法,因此黑客将元素添加到列表中.我该如何避免这种黑客攻击?
我想这个:
[i | i <- [1..], i < 5]
Run Code Online (Sandbox Code Playgroud)
会产生
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
就像
take 4 [i | i <- [1..]]
Run Code Online (Sandbox Code Playgroud)
有限长度列表.
但它没有,它似乎是无限的,因为任何将它视为有限列表的尝试只会导致挂起(ghci).
我不确定如何理解这一点.它是某种无限的发电机,它只是在第四项之后什么都不产生但从未停止过?
基本上代码不断生成新项目,因为它不知道它们永远不能满足标准?
可以在谷歌表中根据格式对一行数据求和,例如:
sumif(a1:d1, if background is green)
Run Code Online (Sandbox Code Playgroud) javascript google-sheets google-apps-script google-sheets-formula