Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

spry

< >

spry is a programming language created in 2015 by Göran Krampe.

#643on PLDB 9Years Old
Download source code:
git clone https://github.com/gokr/spry
Homepage · Source Code

Spry borrows homoiconicity from Rebol and Lisp, free form syntax from Forth and Rebol, the word of different types from Rebol, good data structure literal support from JavaScript and the general coding experience and style from Smalltalk. It also has a few ideas of its own, like an interesting argument passing mechanism and a relatively novel take on OO.


Example from the web:
# Let's add a method to:do: that works as in Smalltalk. # Methods take the first argument, the "receiver", from the left # and binds it to "self". to:do: = method [:to :block n = self [n <= to] whileTrue: [ do block n ..n = (n + 1)]] # Then we can loop in Smalltalk style echoing 1 to 5! 1 to: 5 do: [echo :x] # We can similarly implement select: from Smalltalk select: = method [:pred result = ([] clone) self reset [self end?] whileFalse: [ n = (self next) do pred n then: [result add: n]] ^result] # Then use it to produce [3 4] echo ([1 2 3 4] select: [:x > 2])
Example from hello-world:
#48!#65!#6c!#6c!#6f!#20!#57!#6f!#72!#6c!#64!

Language features

Feature Supported Example Token
Booleans ✓ True False
Comments ✓ # A comment
Line Comments ✓ # A comment #
Semantic Indentation X
View source
- Build the next great programming language · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements · Part of the World Wide Scroll