4 ms·
As much as I like the basic idea, I fundamentally dislike that the control flow becomes implicit. In order to have any understanding of what is happening you ne
by DasIch 15y ago
As much as I like the basic idea, I fundamentally dislike that the control flow becomes implicit. In order to have any understanding of what is happening you need to know the effect each function has on the stack and you need a mental model of the stack or at least it's current state.
In an applicative language this is explicit and it is probably the main reason for the fact that it is relatively easy to understand code in any procedural language once you've learned one.
- _delirium 15y agoI don't see the control flow as more implicit than in applicative functional languages. I agree control flow is more explicit in procedural languages, but in, say, Haskell, control flow seems implicit in approximately the same way as in Factor, in that what you would do via explicit control flow in C, you do instead via functions/words that do control-flow-like things, like "map" or "iterate".
- dustingetz 15y agoin a purely functional language, you don't need to think about the stack any more. your code expresses its dependencies via composition and the order in which things happen becomes the compiler's concern. you don't need or want to have an understanding of what's happening in an imperative sense. bam, a whole class of bugs made impossible. [edit: you're right though, if you actually do need to understand things in an imperative sense, e.g. for performance optimizations, things get complicated.]