Geçtiğimiz günlerde bazı Haskell kodları yazdım ve hiçbir zaman sona ermiyor. Ben dikkatle kodumu incelendiğinde sonra sorun bu aynı kod OCaml son bulan bu yana Haskell tembellik ile ilgili bir şey olmalı sanırım aşağıdaki kod parçasınınBu Haskell kodu neden sonlandırılmıyor?
main :: IO()
main = print $ let a = 10 in
let a = a in
a :: Int
aşağı haşlanmış. Ancak, eğer kod hiç sonlandırma sorun olurdu yerine
main :: IO()
main = print $ let a = 10 in
let b = a in
b :: Int
aşağıdaki kodu yazdım. Orijinal kodda bu yana neden bulamıyorum, iki a iki değişken olarak kabul edilmelidir. Onların isimlendirilmesinin neden programın semantiği ile bir ilgisi olduğunu bilmiyorum.
Durum <- 'ile çok daha kötüdür. – dfeuer
@dfeuer: Ben görmedim '-XDoRec' veya GHC dokümanlar dışında' mdo' ... Ben kullandım – yatima2975
yatima2975 @ 'önce rec' yoktur. Aslında bazı şeyleri çözmek için temiz bir yol. – Carl