Tips untuk bermain golf di OCaml


10

Terinspirasi dari bermacam-macam 'Tips untuk bermain golf dalam bahasa xyz'. Seperti biasa, harap hanya menyarankan kiat yang khusus untuk OCaml dan bukan pemrograman secara umum. Tolong, satu tip per jawaban.


1
Keberatan jika saya menambahkan beberapa tips yang jelas?
Édouard

Jawaban:


4

Gunakan fungsi, bukan pertandingan

let rec f=function[]->0|_::t->1+f t

lebih pendek dari

let rec f x=match x with[]->0|_::t->1+f t

3

Jangan pernah gunakan mulai [...] berakhir

Ini:

begin […] end 

selalu identik dengan ini:

([…])

2

Tetapkan beberapa variabel atau fungsi sekaligus

Berkat tuple, Anda dapat mendefinisikan beberapa variabel sekaligus. Dan karena fungsinya adalah warga negara kelas satu ...:

let f,g=(fun x->x+1),fun x->2*x

Namun, Anda tidak dapat menulis:

let f,g=(fun x->x+1),fun x->2*f x

Kesalahan: Nilai tidak terikat f

Sayangnya, Anda tidak dapat menghindari masalah dengan menggunakan rec:

let rec f,g=(fun x->x+1),fun x->2*f x

Kesalahan: Hanya variabel yang diizinkan sebagai sisi kiri let rec


2

Mengeksploitasi fungsi kari

Fungsi di OCaml dikeringkan. Mungkin bermanfaat untuk mengeksploitasi fakta itu kadang-kadang.

let n y=f x y

dapat ditulis

let n=f x

Jika Anda memerlukan operasi aritmatika, Anda dapat mengelilinginya dengan tanda kurung sehingga berperilaku seperti fungsi awalan standar. (+),, (-)...

let n=(+)1;;
n 3;;

- : int = 4

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.