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

Browse archivesActive forum topics 
Recent comments
1 hour 49 min ago
2 days 7 hours ago
3 days 3 hours ago
3 days 4 hours ago
4 days 4 hours ago
5 days 3 hours ago
5 days 4 hours ago
5 days 7 hours ago
5 days 8 hours ago
5 days 21 hours ago