有没有带生成器的静态类型语言?

时间:2014-04-27 00:29:59

标签: python static generator

我最近一直在使用Python,并且一直在想是否有任何现代的静态类型语言,如语法支持

def gen():
    for i in range(10):
        yield i << 100

for big_num in gen():
    print(big_num)

我认为Scala有他们,但似乎情况并非如此。

1 个答案:

答案 0 :(得分:1)

Haskell有conduits,它更通用,但肯定能够实现与Python的生成器非常相似的行为:

import Control.Monad
import Data.Bits
import Data.Conduit
import qualified Data.Conduit.List as CL

gen :: (Monad m) => Source m Integer
gen = forM_ [0..9] $ \i -> 
          yield (i `shiftL` 100)

main = gen $$ CL.mapM_ print