2011-08-22 64 views
5

Scheme/Racket的枚舉符號與Haskell中的[a..b]符號等價嗎?
在Haskell中,[1..5]評估爲列表[1,2,3,4,5]。計劃/球拍是否有枚舉操作?

+2

Lisp的賣點是最小的語法。因此,不是像'[a..b]'這樣的特殊符號,有一些功能可以完成同樣的事情。 –

回答

10
  1. (for/list ([i (in-range 1 6)]) i)

  2. (sequence->list (in-range 1 6))

  3. (require srfi/1) (iota 5 1)

4
  1. (for/list ([i 5]) (+ 1 i))

  2. (build-list 5 add1)

另外,(in-range 1 6)(這是一個sequence)本身是在許多情況下是有用的。

+0

爲了獲得最像Haskell的行爲,請使用Lazy Racket的'build-list',這是(驚喜)懶惰。 –