Skip to content

Comment on Fexl - a Function Expression Languageparent

Comments

the discussion of side effects on that page is confusing. all you seem to be saying is that any function can be redefined. you do not need to mention side-effects to say that. it is confusing because anyone reading who knows about functional programming is going to see mention of "side effects" and "print" and expect some kind of discussion related to the problems that monads in haskell address (that you can change and examine state in the file system).

also, you should explicitly say somewhere that it is eager (not lazy) (if it is).

also, i couldn't find any discussion of whether it is possible to mutate state (i assume not, but you don't say). related, a table of contents would be a big help - and obvious initial question is "how are data structures handled?" and you don't know where to find the answer when you at the top of the page.

(this is not meant to say that your language is bad - i am just trying to help you "sell" you language to people that read your page!)

Yes, I do need to update things there. I mentioned redefinition in the context of side-effects because I wanted to emphasize that you could isolate a Fexl function in a safe "sandbox" so you could prevent users from calling "print" or "unlink" directly, or even substitute a simulated file system so they can call "unlink" safely. But you're right, they are two separate issues.

On your second point, Fexl is definitely not eager. It is the laziest thing you'll ever see.

And no, you cannot mutate state in any way.

On the subject of "how are data structures handled", I do address that at the top in "RULE 1: Everything is a function." There I say that all data are represented as functions, and I do show a little link to some exposition below.

Thanks for the help on "selling" the language -- until now, I haven't been concerned about that because it's all for my own purposes. But I take your point.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.