User loginNavigation 
The Problem with "dup" and "swap" in StackBased LanguagesOperations like "dup" and "swap" in stackbased languages are special in that they return multiple results (unlike most other languages which simulate multiple results by returning tuples). I find expressing the concept in a type system challenging (if anyone else has done it successfully I would definitely like to hear about it). One of the core problems is that the type of a function like eval, which is supposed to execute any function: eval : (a (a > b) > b) This makes a lot of sense when a function only has one argument and one result. I can reduce every function to an equivalent one having one argument: (a b > c) = (a > b > c) But I do not know how to reduce a function to having one result. This leads to specific problems with certain terms, which I go into more depth on my blog ( http://cdiggins.com/2006/12/09/typeambiguityincatandtheimportanceofformalization/ ). The only solution I can think of is to creat another eval functions which returns two results: eval2 : (a (a > b c) > b c) Any thoughts? By cdiggins at 20061210 21:50  LtU Forum  previous forum topic  next forum topic  other blogs  15887 reads

Browse archives
Active forum topics

Recent comments
19 weeks 5 days ago
23 weeks 6 days ago
25 weeks 4 days ago
25 weeks 4 days ago
28 weeks 2 days ago
32 weeks 6 days ago
32 weeks 6 days ago
33 weeks 2 days ago
33 weeks 2 days ago
36 weeks 1 day ago