Skip to main content
12 events
when toggle format what by license comment
Sep 9, 2016 at 16:54 history tweeted twitter.com/StackCompSci/status/774290007645425665
Sep 9, 2016 at 16:33 answer added chi timeline score: 3
Sep 9, 2016 at 12:51 history migrated from stackoverflow.com (revisions)
Aug 31, 2016 at 21:44 comment added the8472 "However, is there any storage element that can handle such thing directly?" - Time. Applying a function does not mutate in place, it mutates into the future while the past remains unchanged. Of course you will need a time machine to access past states, or absent that, make copies.
Aug 31, 2016 at 4:38 comment added Carl Dong Yeah, Lambda Calculus seems much less "physical" than Turing Machine, Well, I agree CS stackexchange might be the place to go, though. Is it possible to move the question there?
Aug 31, 2016 at 4:34 comment added Bergi Well, yes: a memory device with a built-in garbage collector is an implementation of a storage type on which you can run such functions in constant memory. I guess it would need a distinction between symbols (primitive values) and pointers (objects) in its interface as well as an entry point to the reference graph. I don't know whether such has been formalised in any computational model, though. You might get better answers at Computer Science on that.
Aug 31, 2016 at 4:27 comment added Carl Dong But what about functions that are supposed to run in constant memory? For example(in pseudo-Haskell, this sums 0 to n) fix $ \rec (n,acc) -> if (n == 0) then acc else rec (n-1, acc+n). I know in array-like memory, there either need to be a GC or mutation. However, is there any storage element that can handle such thing directly? (Well, the more I write about it the more I think it is impossible... But I might be limited by my knowledge)
Aug 31, 2016 at 4:21 comment added Bergi There's no need to destroy them. We just will run out of memory eventually for some inputs, like on every physical device. A garbage collector is an implementation detail that helps to reduce the memory requirements. It will use mutation (unlike lamda expressions) and be written in assembly (or something that compiles to it).
Aug 31, 2016 at 4:14 comment added Carl Dong I think GC is needed because Lambda Expressions never manage memory. At least, not the "array" like memory we generally have. In which case, we need to find a way to allocate objects as we evaluate an expression, and destroy them after evaluation.
Aug 31, 2016 at 4:13 comment added Carl Dong For "device" I mean physical memory. And, forget about the Turing Machine I just mentioned. I use the term to contrast Lambda Calculus. Think about Assembly and Lambda Expressions instead.
Aug 31, 2016 at 4:11 comment added Bergi What do you mean by "device"? Why do you think you need garbage collection? A turing machine has infinite memory.
Aug 31, 2016 at 3:31 history asked Carl Dong CC BY-SA 3.0