This discussion on static typing and type inference brings up (in an indirect way) a question that I've been itching to ask for some time. Haskell is a...
... I created my own algorithm for type inferencing. I haven't proved whether or not it is correct. ... That is very interesting, I'd like to get my hands on...
... I'm pretty sure -- but I may be wrong -- that you do sometimes have to provide types in ML. IIRC, overloaded operators are the main culprit; if there are...
... Thanks for that, Rodney. In Joy: assuming that the top of the stack contains the list and above that the two quotations [g] [f], with [f] topmost, then the...
Here's a paragraph in Benjamin Pierce's "Advanced Topics in Types and Programming Languages," p.391, that may clarify some of the issues brought up below: "......
Manfred, Thanks for your response. This is certainly a lot more readable than the Haskell point-free version. My purpose in giving a Haskell version was to...
... Here are a couple of very crude examples which I started experimenting with a while back to convince myself a statically typed concatenative/stack-based...
... Yes, a certain subset of concatenative languages can be mapped to first-order functional (ok, pure) programs: those for which you have words of known arity...
... [..] Hi John, after many months in limbo while being forced off my beloved mainframe, my little Apple eMac now has a new version of the operating system...
... About the Haskell version: does it really work for all lists? what if there are different types of element in the list in the simplest case, suppose ...
I thought I ought to let people know that I have recently done some more work on my Furphy project, that tries to extend Forth in a more concatenative...
... Haskell, like other ML-derived languages, has only homogeneous lists, though the inconvenience of this is somewhat reduced in Haskell due to the invention...
One of the biggest challenges in making Joy type safe is that functions can be created at runtime. Calling "i" on one of these functions would leave the stack...
... I have not given up, but I did suspend work on it until I had some detailed review. ... Not at all. I simply wanted to push something at least partly...
... Side effects are reasonably handled within monad code because the sequence of evaluation for monad code is strictly defined (it's not in general for...
... A worthy question. Depends on how you parse out the "costs". If losing dynamic typing is a cost to you, then I don't think ANY benefits of type inference...
... Type inference can be supplemented by explicit typing or even explicit dynamic typing (e.g. Variant variables in Visual Basic). It's really about which...
I like to think of the static typing vs dynamic typing issue this way: Suppose that you had a dynamically typed language that you were quite happy with. Now...
This is very interesting. I had thought of using Haskell's type classes to build a list that could be used as a stack, but that really defeats the purpose of...
... No? I'm not sure I fully understand your question. I just implemented "fold" and "unfold" over lists, instead of coming up with a statically typable...
... ] Manfred Von Thun scripsit: ] ] ] About the Haskell version: does it really work for all lists? what if ] ] there are different types of element in the...
A little preamble: one of the criticisms of Pascal was that it has some builtin procedures have features which cannot be given to user defined procedures -...
... No longer true of C, BTW; ANSI C allows you to write your own variadic functions in a standards-conformant fashion. ... I think that would be too big a...
This post discusses the choices I've made while designing the concatenative language Enchilada. That will hopefully explain why I've diverged from Joy. To make...
I found an interesting post at http://www.paulgraham.com/accgen.html about accumulator generatos in different languages. In Joy, if I am not mistaken, the...
Hi Chris, Sorry, you're not correct. Your code corresponds to the lisp code: (defun foo (n) (lambda (i) (+ n i))) (setf f (foo 10)) (funcall f 2) -> 12 ...