6
如何哈斯克爾翻譯[
和]
到列表定義是什麼?他們是重視建設者還是什麼?他們是新人嗎?有沒有一種方法來定義一個outfix語法,而不是中綴一個?如何序列語法糖([1..6])轉換成實際列表語法(1:2:3 ... 6)?
如何哈斯克爾翻譯[
和]
到列表定義是什麼?他們是重視建設者還是什麼?他們是新人嗎?有沒有一種方法來定義一個outfix語法,而不是中綴一個?如何序列語法糖([1..6])轉換成實際列表語法(1:2:3 ... 6)?
此語法在Report所定義,並且特別是在section 3.10。 [1..6]
被定義爲意指enumFromTo 1 6
。你不能自己定義這樣的語法。
強調---''[1,2,3]'和'[1..3]'具有相同的*值*,但以非常不同的方式到達那裏。 '[1,2,3]'desugars(直接!)到'1:2:3:[]',而'[1..3]'desugars到'enumFromTo 1 3'然後*評估* 1: 2:3:[]'。 –
@tel:和完整性,'[1,2,3]'和'[1..3]'不一定具有相同的值。這取決於它的類型。它可能是一個以奇怪的方式實現'Enum'的類型列表。 – newacct
也可能是一個類型錯誤,因爲'[1,2,3]'的主類型是'Num a => [a]',而'[1..3]'的主類型是'(Num a ,Enum a)=> [a]'。 –