... Yeah, well, you're a party-spoiler anyhow. :-) ... I do not understand this. "Word" is the Forth term for what other languages call "functions". And most...
... There's truth in what you're saying, but you're missing an important fact: short definitions are easier to read in _any_ language. I admit that it's...
Hello, New to the list. A long time ago, I was fascinated by Forth's ability to let one write programs/words by simply combining lower level words/programs....
spir
denis.spir@...
Mar 2, 2009 8:19 pm
4435
... You're right; I didn't mean to imply otherwise. Ideally, a language should make writing long definitions possible (which I often find useful in Scheme when...
John Nowak
john@...
Mar 2, 2009 8:57 pm
4436
... The Wikipedia article was completely changed a few days ago and now gives a (mostly) good definition of what qualifies; I'd start there: ...
John Nowak
john@...
Mar 2, 2009 9:25 pm
4437
... Factor's OO system isn't based on message passing. Generic words are words that can have methods defined on them for certain classes, like Lisp. But...
... Warning: if you were inspired by Forth, Joy will change your life! You will become hooked on its ideas, just as so many here have before you ;-) -- don...
Le Mon, 2 Mar 2009 16:23:15 -0500, ... Thank you for your extensive reply. I have read this page numerous times ;-) ... What I mean is (letting aside the...
spir
denis.spir@...
Mar 3, 2009 9:57 am
4440
... I'm not sure this'll help, but I'll try. In a stack-based concatenative language, every function takes a stack as input and returns a new stack as a...
John Nowak
john@...
Mar 3, 2009 10:14 am
4441
... Thanks for taking the time to explain; I agree with most of what you've said, but this is false. Forth doesn't have any "the object system"; some of the...
... The best way to say that kind of thing -- assuming that I understand what you're asking for -- is to provide a constructive method to transform one...
... That's certainly true. A long definition that's in a considerable state of flux _can_ be rather hard to juggle around in a concatenative language. That's...
... You don't really need monads: they are just a convenience, because it would be painful to thread state through every function in your program just in case...
Haskell *does* need a monad to do I/O. The essential difference between "read" having a stack shape of F -> F O, and Haskell's IO monad, is that the Haskell ...
... Not everyone agrees on this point. Take a look at this thread: http://lambda-the-ultimate.org/node/3050 Many would say Joy is not purely functional and...
John Nowak
john@...
Mar 3, 2009 7:16 pm
4447
... Actually, Joy has a dynamic type system that DOES make that guarantee. That "F" type on the output of 'read' means that it truly is a file, and the only...
... I was being sloppy. I've certainly proposed "concatenative" languages with as much nesting as you find in Scheme. I really was meaning to compare idiomatic...
John Nowak
john@...
Mar 3, 2009 7:29 pm
4449
... Haskell doesn't need a monad to do I/O. The alternative would be ugly as Mr. Cowan said, but it's not a requirement. The easiest way to do it would be to...
John Nowak
john@...
Mar 3, 2009 7:32 pm
4450
let me register some dissenting opinions here (no surprise, right?) these have been buzzing around in my head since billy's response to my "anti-factoring"...
Stevan Apter
sa@...
Mar 3, 2009 7:57 pm
4451
... (Examples snipped.) ... "A language is concatenative iff one can replace words with their definitions." I think that's at least CLOSE. You might also have...
... Is Q similar to K in this regard? Where would you suggest one look to get a deeper understanding of what you're talking about? I've gone through Q for...
John Nowak
john@...
Mar 3, 2009 8:30 pm
4453
... You make it sound like Haskell might qualify. You can certainly replace words with their definitions in Haskell. Replacing expressions with the word that...
John Nowak
john@...
Mar 3, 2009 8:46 pm
4454
... That's what Clean does, correct? -- Unless it was by accident that I had John Cowan offended someone, I never apologized....
... Yes. The 'Start' function in your program makes this clear on the type level: Start :: *World -> *World Start world = startIO NDI Void initialise [] world ...
John Nowak
john@...
Mar 3, 2009 9:14 pm
4456
... enchilada is purely functional *by design*.... without using monads or uniqueness types. enchilada also happens to be 'concatenative' - whatever that means...
... Nobody ever claimed that Joy was lazy; "pure functional" does not mean "pure, functional, and lazy". Lazy languages have their virtues, but so do eager...
... I don't believe you! Can you demonstrate how a "hello world" program would work? ... This property holds for Joy in all cases; the impure IO doesn't make ...
John Nowak
john@...
Mar 3, 2009 9:41 pm
4459
... I never claimed anyone ever claimed Joy was lazy. My claim was essentially that, if Joy were purely functional in the same sense Haskell was, you *could*...
John Nowak
john@...
Mar 3, 2009 9:51 pm
4460
... "hello world" or ["hello"] ["world"] | . the interpreter is a pure function that takes an input expression and outputs the (rewritten) normal form of that...
... Maybe a bad example. Can you demonstrate how to read a line from a file and echo it to the user? ... I'm saying that you can factor out any subexpression....