Re: [比較] 我為何鍾情於用 Scala 做為兵刃(三)
其實我看到這篇時,第一個想到的也是 List Comprehension。
先補上 haskell ghci 的版本。
這個版本跟 Python 版本差別不大,只是少 for in。
length[x|x<-[-1,-2,-3,0,1,2,3],x^2>5]
關於函數合成的部分,假如要先運算後比較,那通常可以用 filter \
將兩個函數合成一個。
假設有兩個函數 a、b,然後有一個 List c。
那麼
filter a (map b c) == filter (a . b) c
--dryman 指出這兩者出來的結果不同,前者為 [9.9] ,後者為 [-3,3]
在 haskell 中,「.」是用來做函數合成用的。
下面同樣是在 ghci 中使用。
let x = [-1,-2,-3,0,1,2,3] --假如要簡寫的話,可以改寫成 [-3..3]
let sq x = x^2
let big x = x > 5 --假如 sq 跟 big 沒有打算重複使用的打算,可以改寫成 x^2 > 5。
let myBigLength x = length $ filter ( big . sq ) x
myBigLength x
然後
length $ filter ( big . sq ) x == length ( filter ( big . sq ) x )
以上是在下的拙見。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.132.136
推
05/03 14:12, , 1F
05/03 14:12, 1F
感謝提醒,之前沒注意到會這樣!
→
05/03 14:13, , 2F
05/03 14:13, 2F
→
05/03 14:13, , 3F
05/03 14:13, 3F
也是個好寫法阿!
XDDD
那我要修正一下我寫的文章了。
※ 編輯: drm343 來自: 59.113.131.155 (05/04 08:15)
推
05/05 21:33, , 4F
05/05 21:33, 4F
原來是這樣,謝謝指導 ^_^
※ 編輯: drm343 來自: 61.223.232.205 (05/11 23:31)
討論串 (同標題文章)
完整討論串 (本文為第 6 之 11 篇):
PLT 近期熱門文章
PTT數位生活區 即時熱門文章