diff options
-rw-r--r-- | net/ricketyspace/sicp/one/fortytwo.scm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/net/ricketyspace/sicp/one/fortytwo.scm b/net/ricketyspace/sicp/one/fortytwo.scm new file mode 100644 index 0000000..5742588 --- /dev/null +++ b/net/ricketyspace/sicp/one/fortytwo.scm @@ -0,0 +1,35 @@ +;;;; Under Creative Commons Attribution-ShareAlike 4.0 +;;;; International. See +;;;; <https://creativecommons.org/licenses/by-sa/4.0/>. +;;;; +;;;; _____ +;;;; < 42! > +;;;; ----- +;;;; \ __ +;;;; \ (**) +;;;; \ (U ) +;;;; \ /--\ +;;;; __ / \ \ +;;;; U**U\.'@@@@@@`.\ ) +;;;; \__/(@@@@@@@@@@) / +;;;; (@@@@@@@@)(( +;;;; `YY~~~~YY' \\ +;;;; || || >> +;;;; + +(define-module (net ricketyspace sicp one fortytwo) + #:export (sicp-compose inc square)) + +(define (sicp-compose f g) + (lambda (x) (f (g x)))) + +(define (inc x) (1+ x)) +(define (square x) (* x x)) + +;;; GNU Guile REPL + +;;; scheme@(guile-user)> ,use (net ricketyspace sicp one fortytwo) +;;; scheme@(guile-user)> ((sicp-compose square inc) 6) +;;; $21 = 49 +;;; scheme@(guile-user)> ((sicp-compose square inc) 8) +;;; $22 = 81 |