我在OCaml顶层接收到这个奇怪的语法错误.
# #use "ex_8_4.ml";;
type blob = {
get : unit -> float * float;
area : unit -> float;
set : float * float -> unit;
move : float * float -> unit;
}
val new_rectangle : float -> float -> float -> float -> blob = <fun>
# let rect1 = new_rectangle 0.0 0.0 1.0 1.0 in
let rect2 = {rect1 with set = (fun _ -> ())};;
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)
复制未能包括分号在错误中加下划线.
人们可以快速学习以下形式的命令,例如 C 语言中的命令
printf("%d", x);
Run Code Online (Sandbox Code Playgroud)
或者
printf("%lu", x);
Run Code Online (Sandbox Code Playgroud)
但是对于x的二进制表示形式,不存在%lu或%d的类似物。
我的问题首先是为什么会这样,其次是在什么时候(在哪个抽象级别)二进制表示形式会转变为十进制或十六进制?
Stack 网络上的类似点似乎只能引出特定于语言的答案或实现/库建议。然而,我的问题是关于我对数据如何抽象的整体理解,以及操作系统是否见过二进制文件,或者是否有比操作系统更低级别的东西覆盖它。
为了进一步强调我的方向,考虑一个切题的问题:以十六进制编程源文件比以十进制编程(例如在常量或变量初始化期间)对性能(速度或存储)有任何好处吗?