Skip to content

Instantly share code, notes, and snippets.

@tizoc
Created August 4, 2017 13:06
Show Gist options
  • Save tizoc/e358f5a4be85d3a02fdc6f23124bdb6c to your computer and use it in GitHub Desktop.
Save tizoc/e358f5a4be85d3a02fdc6f23124bdb6c to your computer and use it in GitHub Desktop.
Shen, copyright (C) 2010-2015 Mark Tarver
www.shenlanguage.org, Shen 20.1
running under Scheme, implementation: chez-scheme
port 0.16 ported by Bruno Deferrari
(0-) (datatype any
X : Type;
________
X : (mode any -);
X : (Op any);
__________
X : (mode any -);)
type#any
(1-) (tc +)
true
(2+) [1 a] : any
[1 a] : any
(3+) [1 [10 "a" b] c [1]] : any
[1 [10 "a" b] c [1]] : any
(4+) [[1 a] [c "c"]] : (list any)
[[1 a] [c "c"]] : (list any)
(5+) [[1 a] [c "c"]] : (list (list any))
[[1 a] [c "c"]] : (list (list any))
(6+) (* 1 a) : any
type error
(7+) (/. X (+ X 1)) : any
#<procedure> : any
(8+) (/. X (+ X 1)) : (any --> any)
type error
(9+) (/. X (X X)) : (any --> any)
type error
(10+) (/. X (X X)) : ((any --> any) --> any)
#<procedure> : ((any --> any) --> any)
(11+) (/. X [(X X) [X] 1]) : ((any --> any) --> (list any))
#<procedure> : ((any --> any) --> (list any))
(12+) (datatype userdefined
X : Type;
_________
(opaque X) : (opaque Type);)
type#userdefined : symbol
(13+) (tc -)
false : boolean
(14-) (define opaque X -> [opaque X])
opaque
(15-) (tc +)
true
(16+) (opaque 1)
[opaque 1] : (opaque number)
(17+) (opaque 1) : any
[opaque 1] : any
(18+) (opaque test) : (opaque any)
[opaque test] : (opaque any)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment