User loginNavigation |
archivesReferentially Transparent SchemeWhat features from R5RS would have to be removed if one wanted a referentially transparent scheme? In Lisp In Small Pieces, Christian states that assignment, side-effects, and continuations break referential transparency. So I would assume that one would have to remove any destructive operators such as set!, set-car!, set-cdr!, as well as removing call/cc. I also thought that defining global variables (via define) would be removed though I would imagine if you dropped the availability of set! the use of define in the global context would not be much of an issue. Am I looking at this the right way? Are there other things that have side-effects in Scheme that I am not aware of? Is there more information on this topic that I can look and learn more? Best regards, MJ Stahl Sequentiality, laziness, Haskell, and cyclic block diagramsMore shameless self-promotion from me: here's a paper I've been working on that may be of interest to LtU readers, "Many cyclic block diagrams do not need parallel semantics." It is about parallel vs. sequential semantics as applied to an interesting block diagram. (Here the adjectives "parallel" and "sequential" are used as they are in discussions of the full abstraction problem rather than in discussions of concurrency.) It also introduces a block diagram extension to Haskell I've been working on. By bdenckla at 2006-01-19 23:11 | LtU Forum | login or register to post comments | other blogs | 6887 reads
|
Browse archivesActive forum topics |
Recent comments
23 weeks 2 days ago
23 weeks 3 days ago
23 weeks 3 days ago
45 weeks 4 days ago
49 weeks 6 days ago
51 weeks 3 days ago
51 weeks 3 days ago
1 year 2 weeks ago
1 year 6 weeks ago
1 year 6 weeks ago