Live data from Hacker News

Rye Language

ryelang.org

11–20 of 61 posts

Re: Rye Language

#11
post #9
post #7

Earlier quoted context omitted.

Yes ... Rye is syntax-wise in similar camp than Lisps, only without parenthesis. Some say Lisp has no syntax (which is debatable), but has a point that there are no syntax rules. There are multiple token types and they always combine / apply in the same ways, there are no special forms like "how to define a function" or "how to write and if else". In Rye calling if or eihter (if/else) is no different than calling any…

> There are multiple token types and they always combine / apply in the same ways, there are no special forms like "how to define a function" or "how to write and if else". In Rye calling if or eihter (if/else) is no different than calling any other function. Not in Lisp. In Lisp IF, COND, ... are either special operators or macros which expand to more primitive special operators. They are not functions. The syntax f…

Yes, you are correct. I wasn't exact e nough about it, the end result syntax wise is similar, but there are macros involved in Lisps case.

I wrote multiple times right about this difference between Rebol-s and Lisp-s. The main difference being that Lisps evaluate lists by default and you have to quote them to not be evaluated and Rebols don't evaluate blocks by default and you have to "do" them to evaluate them. That's why Rebol's can have if/loop/fn as ordinary functions and Lisps use Macros for them.

If in rebol would be more like (if (> x 1) '(print 'larger)) I think.

Thanks for making this clear ... it was a nice read.

Re: Rye Language

#12
post #11
post #9

Earlier quoted context omitted.

> There are multiple token types and they always combine / apply in the same ways, there are no special forms like "how to define a function" or "how to write and if else". In Rye calling if or eihter (if/else) is no different than calling any other function. Not in Lisp. In Lisp IF, COND, ... are either special operators or macros which expand to more primitive special operators. They are not functions. The syntax f…

Yes, you are correct. I wasn't exact e nough about it, the end result syntax wise is similar, but there are macros involved in Lisps case. I wrote multiple times right about this difference between Rebol-s and Lisp-s. The main difference being that Lisps evaluate lists by default and you have to quote them to not be evaluated and Rebols don't evaluate blocks by default and you have to "do" them to evaluate them. That…

> Lisps use Macros

IF is a built-in special operator in Common Lisp. COND is a macro, which expands into IF forms.

> (if (> x 1) '(print 'larger))

Stuff like this would not really work Common Lisp for the following code example:

    (let ((x 1))
      (if (> x 1)
        '(print x)))
The evaluator would not know that the X in the print form refers to the lexically bound X from the LET form.

Re: Rye Language

#14
post #3

This sounds cool: "Every active component in Rye is a function (if, loop, for, fn, return, extends, context). No keywords, no special forms." It should make the language much simpler than other languages. The challenge of programming is dealing with copmplexity in code, and if the language takes away much of that complexity it should be a good thing.

Thanks, that comes from it's REBOL base ideas, but maybe it's even more pronounced in Rye where also operators are just "op-word" functions, and any function can be op-word/pipe-word (also the ones above if loop for ...).

[deleted]

Re: Rye Language

#15

This sounds cool: "Every active component in Rye is a function (if, loop, for, fn, return, extends, context). No keywords, no special forms." It should make the language much simpler than other languages. The challenge of programming is dealing with copmplexity in code, and if the language takes away much of that complexity it should be a good thing.

That's a reasonably common feature in hobby languages, at least for basic flow control. I've seen it a few times before. You could say TCL works like this too in the most horrible way possible.

Re: Rye Language

#16

This sounds cool: "Every active component in Rye is a function (if, loop, for, fn, return, extends, context). No keywords, no special forms." It should make the language much simpler than other languages. The challenge of programming is dealing with copmplexity in code, and if the language takes away much of that complexity it should be a good thing.

Apparently it's called "either" and it doesn't evaluate every arm.

So, explain to me how that is a function and not a special form?

Re: Rye Language

#17
Interesting, but optional parenthesis is a no go for me.

Every time I try to read a Ruby line with no (), I have to stop and think.

Not being able to scan code is an anti feature.

Post reply on HN