Live data from Hacker News

Rye: Homoiconic dynamic programming language with some new ideas

github.com

1–10 of 86 posts

Re: Rye: Homoiconic dynamic programming language with some new ideas

#3
The blog entry titled "Less variables, more flows example vs Python" is strange. ( https://ryelang.blogspot.com/2021/11/less-variables-more-flo... )

The Python version uses intermediate variables so the author of the code is to blame for verbosity, not the language.

Re: Rye: Homoiconic dynamic programming language with some new ideas

#4
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

Presumably as functions, the same way as excel?

and(x, y) -> bool

or(x, y) -> bool

if(cond, funcTrue, funcFalse) -> void

Re: Rye: Homoiconic dynamic programming language with some new ideas

#5
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

This is possible with fexprs or equivalent constructs https://en.wikipedia.org/wiki/Fexpr

It looks like that's how Rye does it as well, blocks can be conditionally evaluated: https://ryelang.org/meet_rye/basics/if_either/

"In REBOL, contrary to Lisps, blocks or lists don’t evaluate by default. For better or for worse, this little difference is what makes REBOL - REBOL." https://ryelang.org/meet_rye/basics/doing_blocks/

It's difficult for a language with this semantics to be made efficient, but efficiency isn't everything.

Re: Rye: Homoiconic dynamic programming language with some new ideas

#6
post #5
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

This is possible with fexprs or equivalent constructs https://en.wikipedia.org/wiki/Fexpr It looks like that's how Rye does it as well, blocks can be conditionally evaluated: https://ryelang.org/meet_rye/basics/if_either/ "In REBOL, contrary to Lisps, blocks or lists don’t evaluate by default. For better or for worse, this little difference is what makes REBOL - REBOL." https://ryelang.org/meet_rye/basics/doing_block…

>programming language based on ideas from Rebol, flavored by Factor, Linux shell and Go

That makes it potential interesting to me.

Re: Rye: Homoiconic dynamic programming language with some new ideas

#7
post #5
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

This is possible with fexprs or equivalent constructs https://en.wikipedia.org/wiki/Fexpr It looks like that's how Rye does it as well, blocks can be conditionally evaluated: https://ryelang.org/meet_rye/basics/if_either/ "In REBOL, contrary to Lisps, blocks or lists don’t evaluate by default. For better or for worse, this little difference is what makes REBOL - REBOL." https://ryelang.org/meet_rye/basics/doing_block…

Why is it difficult?

Re: Rye: Homoiconic dynamic programming language with some new ideas

#8
post #5
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

This is possible with fexprs or equivalent constructs https://en.wikipedia.org/wiki/Fexpr It looks like that's how Rye does it as well, blocks can be conditionally evaluated: https://ryelang.org/meet_rye/basics/if_either/ "In REBOL, contrary to Lisps, blocks or lists don’t evaluate by default. For better or for worse, this little difference is what makes REBOL - REBOL." https://ryelang.org/meet_rye/basics/doing_block…

I mean, it's possible in lambda calculus. Anything above that is sugar, right?

Re: Rye: Homoiconic dynamic programming language with some new ideas

#9
post #4
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

Presumably as functions, the same way as excel? and(x, y) -> bool or(x, y) -> bool if(cond, funcTrue, funcFalse) -> void

Yeah I did notice in the examples

    fac: fn { x } { either x = 1 { 1 } { x * fac x - 1 } }
    ; function that calculates factorial
So presumably "either" is the "if" expression.

Re: Rye: Homoiconic dynamic programming language with some new ideas

#10
post #4
post #2

> Rye is homoiconic, it has no keywords or special forms (everything is a function call, everything is a value) How does it implement and , or , or if ?

Presumably as functions, the same way as excel? and(x, y) -> bool or(x, y) -> bool if(cond, funcTrue, funcFalse) -> void

[deleted]
Post reply on HN