Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Do-combinations
;gnu clisp 2.49 ; (loop with c = 0 for i on '(1 2 3 4 5 6 7) ; do (loop for j on (cdr i) ; do (loop for k on (cdr j) ; do (pprint (cons (incf c) (mapcar #'car (list i j k))))))) (defmacro do-combinations ((var lst num) &body body) (loop with syms = (loop repeat num collect (gensym)) for i on syms for k = `(loop for ,(car i) on (cdr ,(cadr i)) do (let ((,var (list ,@(reverse syms)))) (progn ,@body))) then `(loop for ,(car i) on ,(if (cadr i) `(cdr ,(cadr i)) lst) do ,k) finally (return k))) (do-combinations (p '(1 2 3 4 5 6 7) 4) (pprint (mapcar #'car p)))
run
|
edit
|
history
|
help
0
L1.9d - semi
Veronica
COND
14
L1_soca
Playfair_Encode
Functions for Euler #152
correcting
2rec
LISP Quick Lab