range-notation

    0熱度

    3回答

    我已經定義了以下功能 let repl x n = [x | _ <- [1..n]] 模仿內置的複製功能。 雖然用它進行試驗,我發現一個奇怪的事情:repl 10 0評估爲[],而repl 10 -1產生一個錯誤: No instance for (Show (t10 -> [t0])) arising from a use of ‘print’ In a stmt of an inter

    22熱度

    2回答

    我在我的一個演講中遇到了一個練習,這讓我對[2,2,2]的輸出感到困惑。爲什麼當輸入[2,2 .. 2]時,它會生成一個帶有2的「無限」列表。 我理解符號的方式是第一個元素是開始邊界,第二個是數字之間的「間隙」,最後一個是列表的結束,換言之,當達到該數字時停止。 如果我的推理是正確的,爲什麼表達式[2,2,2]不輸出[2]?。 我認爲Haskell可能會這樣評價它; 當打印的 列表中的第一個元素它

    8熱度

    2回答

    當評估表達式: *main> [0, 0.1 .. 1] 我其實期望: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] 但是我很驚訝地看到的輸出被 [0.0,0.1,0.2,0.30000000000000004,0.4000000000000001,0.5000000000000001,0.6000000000000001,0.70