用F#中的守卫在Haskell of List理解中实现类似功能的方法是什么

例如:

factors    ::  Int -> [Int]
factors    =   [x | x <-[1 .. n], n 'mod' x == 0]

factors 15
[1,3,5,15]




posInt     ::   Int -> [Int]
posInt     =    [n | n > 0]

posInt 5
[5]

posInt 0
[]

最佳答案

gradbot是正确的。忠实地转换posInt看起来像:

let posInt n = [if n > 0 then yield n]

09-18 01:36