2011-08-22 12 views
5

Czy schemat/rakieta mają notację wyliczenia równoważną notacji [a..b] w Haskell?
W Haskell, [1..5] ocenia listę [1,2,3,4,5].Czy Scheme/Racket ma operację wyliczenia?

+2

Punktem sprzedaży Lisp jest minimalna składnia. Więc zamiast specjalnych notacji, takich jak '[a..b]', istnieją funkcje, które wykonują to samo. –

Odpowiedz

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)

Również (in-range 1 6) (który jest sequence) sama w sobie jest przydatna w wielu zastosowaniach.

+0

Aby uzyskać zachowanie najbardziej podobne do Haskella, użyj 'build-list 'Lazy Racket, która jest (niespodzianka) leniwą. –

Powiązane problemy