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
Sw
Project Euler 51
Veronica
Sum_of_evens
Common Lisp - simple function examples
max element
Question 4 et 5
S17016281_ACTIVIDAD_16
[LISP] Square root
LISP Quick Lab