Haskell 入門 1 — 數組(下)

λ [x*2 | x<-[1..10]]
[2,4,6,8,10,12,14,16,18,20]:: (Enum t, Num t) => [t]

解釋一下,首先從 1 到 10 取出每一個元素然後 x 2 得到新的數組

[x | x<-[1,2,3],x `mod` 2 == 0] 
[2]:: Integral t => [t]

我們讀一讀,我們先看 | 右邊的代碼會先執行,分隔篩選條件,如果熟悉事件流或者rxjs

let boomBangs xs = [ if x < 10 then "BOOM!" else "BANG!" | x <- xs, odd x] 
    let result = boomBangs [7..13]
    print result

讀一讀上面的代碼,

  • 首先我們 xs 爲一個數組,從這裏取 x 放入返回數組裏
  • odd 方法過濾爲奇數
  • 進行一此 map x < 10 元素 map 爲 "BOOM" 其他映射爲 "BANG!"
[ x | x <- [10..20], x /= 13, x /= 15, x /= 19]
[10,11,12,14,16,17,18,20]  

看一下有了,有了上面介紹,這一個應該不難理解,從 10 - 20 取數據然後依次進行篩選,不等於 13 、15 和 19

[ x*y | x <- [2,5,10], y <- [8,10,11]]
[16,20,22,40,50,55,80,100,110]

這個代碼其實也沒啥,只不過就是多了一個元素

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章