ocaml

    0熱度

    1回答

    從源代碼編譯Ocaml時,它使用/boot/ocamlc來編譯.ml文件。 因此ocaml使用ocamlc本身來構建自己。第一個ocamlc文件從哪裏來的?如何在不使用/boot/ocamlc的情況下編譯第一個ocamlc二進制文件?

    1熱度

    1回答

    我跑命令opam install ocamlbuild,似乎我有某種問題ocamlopt 這裏是opam告訴我:(我猜它只是不喜歡我的4.04版本) ### stdout ### # [...] # mkdir -p tmp # ocamlopt.opt -pack src/const.cmx src/loc.cmx src/discard_printf.cmx src/signatures

    0熱度

    1回答

    通行證下面的功能,通過此Binary Tree: let rec inorder(t:tree) : int list = begin match t with | Empty -> [] | Node (left, x, right) -> inorder left @ (x :: inorder right) end 爲什麼結果[1; 2; 3; 4

    0熱度

    4回答

    這兩者之間有什麼區別嗎? 我不知道他們的,我應該把我的.mli文件 module Comparable : sig type t val compare : t -> t-> int end module type Comparable = sig type t val compare : t -> t-> int end 在real world

    2熱度

    3回答

    我正在實施一個使用Ocaml的模擬解釋器。其中一個模擬功能是使用模式匹配來評估組成表達式。 這個問題是微不足道的,絕對可以解決,但我試圖找到一個更優雅的方式來做到這一點,所以請繼續閱讀,如果你仍然感興趣! 我的用戶定義類型的代碼片段看起來是這樣的: type value = | Val_Int of int | Val_Bool of bool type expr =

    0熱度

    1回答

    我想從OCaml程序中將字符串儘可能有效地複製到mmap'ed內存區域(通過Genarray.file_map獲取)。我的目標是允許其他進程在OCaml進程運行時從此共享內存中讀取,並且開銷最小(我不需要完全併發功能,只有一個寫入器和一個閱讀器)。 我試圖複製每個字符的字符,如在下面的代碼段(其中I串s的前255個字符複製): let fd = Unix.openfile "/tmp/foo" [

    2熱度

    1回答

    我最近一直在學習OCaml,截至目前看起來編譯器使用了一個箭頭來表示下一個類型是什麼。例如,int -> int -> <fun>是一個返回整數的整數,它返回一個函數。 但是,我想知道我是否可以在OCaml代碼中本地使用它。此外,如果有人會碰巧知道它的適當名稱。謝謝。

    1熱度

    2回答

    從我迄今爲止觀察到的情況來看,帶有可變字段的記錄的行爲就好像它們總是通過引用傳遞一樣。例如,如果我將某個記錄傳遞給一個函數或將其存儲在一個數據結構中,則該記錄不會在該過程中被複制。例如,下面的代碼: type t = { mutable t_val: int } let() = let ht = Hashtbl.create 16 in let x = { t_

    1熱度

    1回答

    函數調用返回的列表 我使用下面的函數打印列表 let rec print_list = function [] ->() | e::l -> print_int e ; print_string " " ; print_list l;; 我使用下面的函數來扭轉名單 let rec rev l = match l with [] -> [] | h::t

    0熱度

    1回答

    我試圖實現的是,我自己的版本List.fold_right或List.fold_left與Event Module和Thread Module爲了加快過程。 (我知道,ocaml的不支持多線程並行,但我在這裏的概念) 我嘗試:(雖然我不知道我贏了額外的時間) open Thread open Event let rec tapply f start = function | [] -