2011-08-22 8 views
5

¿Scheme/Racket tiene una notación de enumeración equivalente a la notación [a..b] en Haskell?
En Haskell, [1..5] evalúa a una lista [1,2,3,4,5].¿Scheme/Racket tiene una operación de enumeración?

+2

El punto de venta de Lisp es la sintaxis mínima. Entonces, en lugar de notación especial, como '[a..b]', hay funciones que logran lo mismo. –

Respuesta

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)

También, (in-range 1 6) (que es un sequence) por sí mismo es útil en muchos contextos.

+0

Para obtener un comportamiento más parecido al de Haskell, usa 'build-list' de Lazy Racket, que es (sorpresa) perezosa. –

Cuestiones relacionadas