From 57eb8dab5920e959e43c5670f71caf8056c4ca0e Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Tue, 18 Oct 2016 23:02:57 -0700 Subject: [PATCH] learning lisp --- lisp/euler.lisp | 3 +++ lisp/euler001.lisp | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 lisp/euler.lisp create mode 100644 lisp/euler001.lisp diff --git a/lisp/euler.lisp b/lisp/euler.lisp new file mode 100644 index 0000000..9f9679f --- /dev/null +++ b/lisp/euler.lisp @@ -0,0 +1,3 @@ +(defun range (min max) (loop for n from min below max by 1 collect n)) +(defun sum (list) (apply '+ list)) +(defun select (expr list) (remove-if-not expr list)) diff --git a/lisp/euler001.lisp b/lisp/euler001.lisp new file mode 100644 index 0000000..e8c125e --- /dev/null +++ b/lisp/euler001.lisp @@ -0,0 +1,5 @@ +(load "euler.lisp") + +(defun is_multiple_of_3_or_5 (n) (or (eq 0 (mod n 3)) (eq 0 (mod n 5)))) +(defun multiples_of_3_or_5 (n) (select #'is_multiple_of_3_or_5 (range 1 n))) +(defun result (n) (sum (multiples_of_3_or_5 n)))