我是OCaml的新手,我现在正在尝试实现一个函数,该函数返回一个列表,其中包含输入列表中偶数位置的所有元素.对于[1; 2; 3; 5],返回[2; 5]和[1 3]返回[3]; 并且对于["i";"am";"new";"to";"ocaml"]返回["am";"to"].希望有人能给我一些解决这个问题的建议.
Ocaml 新手,需要操作元组参数的帮助
该函数接受 3 个整数的参数并返回它的逆值
示例:转数 (5, 8, 6) = (6, 8, 5) 转数 (3, 2, 1) = (1, 2, 3)
我刚刚偶然发现了一些 OCaml 代码,它编写了如下循环:
let r = ref (f 0) in
for i = 1 to k - 1 do
r := f i * !r
done ;
!r
in
Run Code Online (Sandbox Code Playgroud)
这很有趣,因为我通常看到这通常使用 OCaml 中的递归函数来完成。一个相对于另一个有优势吗?
recursion ocaml functional-programming imperative-programming
现在的时间是11:05,如果我这样做Unix.gmtime (Unix.time()),我会得到
{Unix.tm_sec = 53; Unix.tm_min = 4; Unix.tm_hour = 10; Unix.tm_mday = 19;
Unix.tm_mon = 5; Unix.tm_year = 113; Unix.tm_wday = 3; Unix.tm_yday = 169;
Unix.tm_isdst = false}
Run Code Online (Sandbox Code Playgroud)
的Unix.tm_hour=10,但它应该是11吧?
为什么真正的小时减一?
可能重复:
JavaScript的数学是否被破坏?
我在OCaml的算术精度方面遇到了奇怪的问题.看:
# 1.1+.2.2;;
- : float = 3.30000000000000027
Run Code Online (Sandbox Code Playgroud)
它发生在我做的事情:something.1 + something.2.有人可以试试吗?
尝试将类型定义从Ocaml/F#转换为Haskell,收到错误:
error: parse error on input `*'
Run Code Online (Sandbox Code Playgroud)
我怎么能纠正代码?
当前的Haskell代码:
data Func sa sb =
Empty
| Leaf Int * (sa * sb) List
| Branch Int * Int * (Func sa sb) * (Func sa sb)
Run Code Online (Sandbox Code Playgroud)
ocaml的:
type ('a,'b)func =
Empty
| Leaf of int * ('a*'b)list
| Branch of int * int * ('a,'b)func * ('a,'b)func;;
Run Code Online (Sandbox Code Playgroud)
F#
type func<'a,'b> =
| Empty
| Leaf of int * ('a * 'b) list
| Branch of int * int …Run Code Online (Sandbox Code Playgroud)