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  16080 reads

Browse archives
Active forum topics 
Recent comments
16 weeks 1 day ago
16 weeks 1 day ago
16 weeks 1 day ago
38 weeks 3 days ago
42 weeks 5 days ago
44 weeks 2 days ago
44 weeks 2 days ago
47 weeks 3 hours ago
51 weeks 4 days ago
51 weeks 4 days ago