summaryrefslogtreecommitdiffstats
path: root/net/ricketyspace
diff options
context:
space:
mode:
Diffstat (limited to 'net/ricketyspace')
-rw-r--r--net/ricketyspace/sicp/one/fortytwo.scm35
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