1
我是Haskell的新手,我試圖將int轉換爲反轉數字列表(int)。Haskell反轉數字位列表
我所擁有的是:
Lnat 0 = [0]
Lnat x = [mod x 10] ++ Lnat (div x 10)
但是我得到的錯誤「不在範圍:數據構造‘Lnat’」的線條和崩潰試圖加載該文件。
您能否解釋一下這個問題的根源以及如何解決它?
我是Haskell的新手,我試圖將int轉換爲反轉數字列表(int)。Haskell反轉數字位列表
我所擁有的是:
Lnat 0 = [0]
Lnat x = [mod x 10] ++ Lnat (div x 10)
但是我得到的錯誤「不在範圍:數據構造‘Lnat’」的線條和崩潰試圖加載該文件。
您能否解釋一下這個問題的根源以及如何解決它?
所有值必須以小寫字符開頭。如果它以大寫或:
開頭,那麼該值是一個數據構造函數,用於data
聲明中。這是你會想你的函數改變什麼:
lnat 0 = [0]
lnat x = mod x 10 : lnat (div x 10)
請注意,我也改變了低效++
運營商:
增添多一點速度。
您定義的函數必須有一個以小寫字母開頭的名稱。使用例如'lnat'。大寫字母保留給數據類型中值的構造函數。 – chi
函數以小寫字母,類型和構造函數開頭,以大寫字母 – genisage
開頭,函數名稱使用小寫字母。大寫初始意味着構造函數。 – karakfa