80% of Rye in 20% of the Time [1/3]
37 points by refaktor
37 points by refaktor
Always happy to see new rye content - thanks for posting, and for continuing to work on such a fascinating language.
Oh, thanks for kind words a lot!
I refrained from making new blog posts until I updated all the docs, examples and tests with the changes that happened to the language in 2025. In 2025 a lot of open questions got answers and I wanted to make changes sooner rather than drag them out, so quite a lot of details were out of sync. Now the state is much better, but there is still work to be done, of course :). Thank you for following the progress.
Consider my curiosity piqued for the following episodes!
Thanks! This one fell together naturally. I hope next ones do too. I am trying to constrain it to 3 pages of around 100 lines.
Next one will probably do: op-words / pipe words, injected blocks, more on assignment, functions, contexts, (maybe returning functions)
Third one: few more literal types, kinds, generic methods, dialects, failures / errors, conventions
Some of the names above might seem foreign, but the behavior is pretty understandable, I think. Most of this is explained in a longer format in Meet Rye
get-word returns the value, even when function
Unfinished sentence? I assume this is just saying the value can be a function?
I was trying to say in short, but it seems failed: get-word returns the bound value, even when the bound value is a function.
Regular words return a bound value, but if the bound value is a function, regular words call a function. (this is typical REBOL)
hey: "Hey"
hoy: fn { name } { .embed "Hoy {}" |print }
hey ; returns value, string "Hey"
print hey ; prints Hey
hoy "Jim" ; calls a function, prints "Hoy Jim"
for { "Jim" "Jane" } { .hoy }
; prints:
; Hoy Jim
; Hoy Jane
; for (function) also accepts a function in place of a code block so we
; can provide it hoy function directly
for { "Jim" "Jane" } ?hoy
; prints:
; Hoy Jim
; Hoy Jane
Thank you for the feedback. I will try to improve the comment.
// edit: fixed it