(Arne Babenhauserheide)
2017-11-17: examples: update and cleanup fibonacci examples: update and cleanup fibonacci
diff --git a/examples/fib.w b/examples/fib.w
--- a/examples/fib.w
+++ b/examples/fib.w
@@ -1,4 +1,7 @@
-#!/home/arne/wisp/wisp-multiline.sh
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
+exec guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0" "$@"
; !#
;; Fibonacci Functions
@@ -29,53 +32,13 @@ display
. {1 + 1}
newline
-;; Due to the compatibility with curly-infix, the following is no longer possible.
+;; And a complete infix-fibonacci
+define : fibcurl2 n
+ . "Get Fibonacci Elements in Linear Time"
+ let rek : (i 0) (u 1) (v 1)
+ if { i >= { n - 2 } }
+ . v
+ rek { i + 1 } v { u + v }
-;; Try an infix notation with curly brackets - curly infix from readable as simple macro
-;; define-syntax {
-;; syntax-rules : { }
-;; : { left infix right }
-;; infix left right
-;;
-;; ; display : { 1 + 2 }
-;;
-;; ;; Now do the fibonacci again
-;; define : fibcurl n
-;; . "Get Fibonacci Elements in Linear Time"
-;; let rek : (i 0) (u 1) (v 1)
-;; if : { i >= ({ n - 2 }) }
-;; . v
-;; rek ({ i + 1 }) v ({ u + v }) ; else
-;;
-;; ; display : fibcurl 5
-;;
-;; ;; Do a more complete syntax-rule
-;;
-;; ;; Try an infix notation with curly brackets - curly infix from readable as simple macro
-;; define-syntax {
-;; syntax-rules : { }
-;; : { l in r }
-;; in l r
-;; : { { ll lin lr } in r }
-;; in (lin ll lr) r
-;; : { l in { rl rin rr } }
-;; in l (rin rl rr)
-;; : { { ll lin lr } in { rl rin rr } }
-;; in (lin ll lr) (rin rl rr)
-;;
-;; ;; And a complete infix-fibonacci
-;; define : fibcurl2 n
-;; . "Get Fibonacci Elements in Linear Time"
-;; let rek : (i 0) (u 1) (v 1)
-;; if : { i >= { n - 2 } }
-;; . v
-;; rek
-;; { i + 1 }
-;; . v
-;; { u + v }
-;;
-;; ;; But to be frank: Prefix looks better.
-;;
-;; display : { { 1 + 2 } * { 2 * 3 } }
-;; ; display : fibcurl2 5
-;; ; TODO: Make the macro recursive, so it can actually cover arbitrary depths of curly braces.
+display : fibcurl2 5
+newline