我想知道为什么<operator支持int,string,bool或float,而+只支持int.
OCaml可以识别要使用的基础算术吗?什么使比较运算符与算术运算符不同?其他FP语言是否相同?
在utop中,当打开库(通过~requires ......)或打开模块时(通过打开Module_name),有没有办法获取库或模块的内容?utop通过完成选项卡提供此功能,但我希望立即看到所有功能.
我想知道是否可以在像STM32F407(1MB闪存,196kB RAM)这样的处理器上交叉编译用Ocaml编写的应用程序?(没有操作系统).
我已经阅读了针对ARM的交叉编译ocaml应用程序 ; 这个实验似乎已经在beaglebone上完成了; 比STM32更强大,而Linux作为操作系统.
还有OcaPIC(http://www.algo-prog.info/ocaml_for_pic/web/index.php?id=ocapic) - 适用于PIC处理器.ARM Cortex M4有类似的端口吗?
在真实世界Ocaml第9章关于仿函数:
依赖注入
使系统的某些组件的实现可以交换.当您想要模拟系统的某些部分以进行测试和模拟时,这尤其有用.
但我没有理解这个想法.我还看了维基百科有关DI的信息 - 但实际上我并没有通过测试和模拟目的来捕捉这些关系.
在ocaml手册第 7.20节的GADT基本示例中,'type a'的含义是什么??为什么宣称"eval:一个术语 - > a"是不够的?
type _ term =
| Int : int -> int term
| Add : (int -> int -> int) term
| App : ('b -> 'a) term * 'b term -> 'a term
let rec eval : type a. a term -> a = function
| Int n -> n (* a = int *)
| Add -> (fun x y -> x+y) (* a = int -> int -> int *)
| …Run Code Online (Sandbox Code Playgroud)