Khác biệt giữa bản sửa đổi của “OCaml”

Nội dung được xóa Nội dung được thêm vào
n Sửa thẻ source cũ
 
Dòng 38:
 
Trong OCaml, cũng như các [[lập trình hàm|ngôn ngữ lập trình hàm]] khác, ''tên'' được gán giá trị bằng lệnh <code>let</code>:
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
let x = 3 + 5 * 2;;
</syntaxhightlight>
</source>
 
Đặc điểm lập trình hàm của OCaml cho phép các hàm là dạng dữ liệu cấp I. Hàm số ưu tiên kết hợp với tham số ở mức ưu tiên cao nhất.
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
(* Chú thích: giả sử f là một hàm có một tham số *)
2 + f 3 (* cách thông dụng *)
2 + (f 3) (* rõ ràng hơn *)
2 + f(3) (* thường dùng với các ngôn ngữ mệnh lệnh như C, Pascal... Không thông dụng trong OCaml *)
</syntaxhightlight>
</source>
 
Với đặc điểm này, một tên cũng có thể khai báo như một hàm bằng <code>let</code>:
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
let gapDoi x = x *. 2.0;;
</syntaxhightlight>
</source>
 
Với các hàm [[đệ quy]], ta cần viết <code>let rec</code>:
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
let rec giaiThua n =
if n = 0 then 1 else n * giaiThua (n-1);;
</syntaxhightlight>
</source>
 
== Hiện thực ==
Dòng 81:
== Dấu nhắc lệnh ==
<kbd>ocaml</kbd> cũng là tên trình thông dịch của ngôn ngữ. Dấu nhắc lệnh OCaml có hình dấu thăng (<kbd>#</kbd>). Cần nhớ rằng để kết thúc dòng lệnh cần gõ <code>;;</code> trước khi gõ <kbd>Enter</kbd>.
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
# 1+2*3;;
-: int = 7
</syntaxhightlight>
</source>
 
Kết quả phép tính có giá trị bằng 7, kể cả kiểu dữ liệu: số nguyên (<code>int</code>) cũng được máy thông báo.
 
<sourcesyntaxhightlight lang="ocaml" style="font-size:1.2em;">
# let pi = 4.0 *. atan 1.0;;
val pi: float = 3.14159265358979312
# let binhPhuong x = x *. x;;
val binhPhuong: float -> float = <fun>
</syntaxhightlight>
</source>
 
Kết quả của một khai báo sẽ được máy thông báo là <code>val </code>''<kbd>tên</kbd>''. Trong trường hợp hàm số thì có cả thông báo về các kiểu dữ liệu (ở đây hàm nhận tham số dạng <code>float</code> (số thực) và trả kết quả cũng dưới dạng <code>float</code>.