Ada perbedaan yang melekat dalam Haskell dan F # semantik. Di Haskell, panggilan fungsi tidak melakukan perhitungan nyata, tetapi mengalokasikan objek tumpukan yang dikenal sebagai 'thunk'. Sangat baik bagi seorang pencuri untuk memiliki tautan ke pencuri itu sendiri atau pencuri lain. Namun, dalam F #, panggilan fungsi adalah panggilan yang sebenarnya, membuat ekspresi seperti let x = 1 : 2 : x in x
tidak valid - karena x
harus dibangun sebelum 1 : 2 : x
dibangun. Namun, definisi ini masih kurang lebih masuk akal untuk daftar tak terbatas, beberapa cara untuk mendefinisikannya harus ada. Di sinilah letak akar untuk rec
. Jika Anda menginginkan lebih, cari dan baca semantik operasional untuk SML dan Haskell - ini berbeda.