我是功能编程(RationalML/OCaml)的新手。限制递归浮动列表的前三个元素
我有一个浮动列表。我想获得列表中的前三个非零项目,而不是更多。项目可以是正数,负数和零。
在前三个非零浮点数被提取前,如何限制递归?
我的想法做类似的:
switch (list) {
| [first, second, third, ...rest] => (first +. second +. third) /. 3.0
| _ => 0.0
};
但我怎么能保证first
,second
和third
非零花车?如果是,则递归丢弃它们直到找到三个非零浮点数 - 或返回0.0
。
非常感谢!对于那些希望看到ReasonML语法的用户,可以使用此工具在OCaml和RationalML片段之间进行转换。 https://reasonml.github.io/try/?ocaml=DYUwLgBAZglgdgEwPpwsCqB+UIF4IGFHEmlnkWVXU2130ONMUBQBokATiAMZoD2-AA5oA5BnEBDHn1xtCMHHHH4ADBDAALEKml8QwAM4h5RALaSwPTWIgB3GFtOEAPhADaAXQgBaAHzQkjDADloQAEQAwpJwcPyQsIgQOvwArgDmNo4gZobhzgRumgBcxZD+BcSK0BA2WjqVJMCCIpAAFMq+EACMAJQQbSXFer2NhAbGY0TNwhoSEHry8PIzIuioXkA –