Sujet : re: Generating code which compiles to a jmphash
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lispDate : 18. Jul 2024, 18:10:44
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v7beq0$2g7di$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
fvmarcoline wrote:
(defconstant dirs '(up down left right))
(defun all-moves ()
(loop for dir in dirs
append
(loop for i from 0 to 4
collect (list i dir))))
(defun move-to-int (move)
(+ (first move) (* 5 (position (second move) dirs))))
(nth 12 (all-moves))
=> (2 left)
(map 'list 'move-to-int (all-moves))
=> (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)
Gauche Scheme
(define dirs '(up down left right))
(define dir-table (map cons dirs '(0 5 10 15)))
(define (all-moves)
(append-map
(^(dir) (map (^i (list i dir)) (lrange 0 5)))
dirs))
(define (move-to-int move)
(+ (car move) (assv-ref dir-table (cadr move))))
(~ (all-moves) 12)
===>
(2 left)
(map move-to-int (all-moves))
===>
(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)