RosettaCodeData/Task/Enumerations/Ol/enumerations-2.ol

11 lines
302 B
Plaintext

; simple function to create enumeration with autoassigning values
(define (make-enumeration . args)
(fold (lambda (ff arg i)
(put ff arg i))
#empty
args
(iota (length args))))
(make-enumeration 'apple 'banana 'cherry)
; ==> '#ff((apple . 0) (banana . 1) (cherry . 2))