tasks a-s

This commit is contained in:
Ingy döt Net 2013-04-10 23:57:08 -07:00
parent 47bf37c096
commit b83f433714
12433 changed files with 156208 additions and 123 deletions

View file

@ -0,0 +1,21 @@
: (any "((data \"quoted data\" 123 4.5) (data (!@# (4.5) \"(more\" \"data)\")))")
-> ((data "quoted data" 123 5) (data (!@# (5) "(more" "data)")))
: (view @)
+---+-- data
| |
| +-- "quoted data"
| |
| +-- 123
| |
| +-- 5
|
+---+-- data
|
+---+-- !@#
|
+---+-- 5
|
+-- "(more"
|
+-- "data)"

View file

@ -0,0 +1,26 @@
(de readSexpr ()
(case (skip)
("(" (char) (readList))
("\"" (char) (readString))
(T (readAtom)) ) ) )
(de readList ()
(make
(loop
(NIL (skip))
(T (= @ ")") (char))
(link (readSexpr)) ) ) )
(de readString ()
(pack
(make
(until (= "\"" (or (peek) (quit "Unterminated string")))
(link (char)) )
(char) ) ) )
(de readAtom ()
(let X
(make
(until (or (sp? (peek)) (member (peek) '("(" ")")))
(link (char)) ) )
(or (format X) (intern (pack X))) ) )

View file

@ -0,0 +1,2 @@
: (pipe (prin "((data \"quoted data\" 123 4.5) (data (!@# (4.5) \"(more\" \"data)\")))") (readSexpr))
-> ((data "quoted data" 123 5) (data (!@# (5) "(more" "data)")))

View file

@ -0,0 +1,2 @@
: (sym @@)
-> "((data \"quoted data\" 123 5) (data (!@# (5) \"(more\" \"data)\")))"

View file

@ -0,0 +1,14 @@
(de printSexpr (Expr Fun)
(cond
((pair Expr)
(Fun "(")
(printSexpr (car Expr) Fun)
(for X (cdr Expr)
(Fun " ")
(printSexpr X Fun) )
(Fun ")") )
((str? Expr)
(Fun "\"")
(mapc Fun (chop Expr))
(Fun "\"") )
(T (mapc Fun (chop Expr))) ) )

View file

@ -0,0 +1,4 @@
: (printSexpr
'((data "quoted data" 123 4.5) (data (!@# (4.5) "(more" "data)")))
prin )
((data "quoted data" 123 5) (data (!@# (5) "(more" "data)")))

View file

@ -0,0 +1,6 @@
: (pack
(make
(printSexpr
'((data "quoted data" 123 4.5) (data (!@# (4.5) "(more" "data)")))
link ) ) )
-> "((data \"quoted data\" 123 5) (data (!@# (5) \"(more\" \"data)\")))"