tag:blogger.com,1999:blog-22587889.post4995001879225534200..comments2024-02-11T13:21:47.930+05:30Comments on Ruminations of a Programmer: Grokking Functional Data StructuresAnonymoushttp://www.blogger.com/profile/01613713587074301135noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-22587889.post-44323286251811046862013-06-16T04:08:26.471+05:302013-06-16T04:08:26.471+05:30Debasish, this is one of those blogs that makes yo...Debasish, this is one of those blogs that makes you wanna take a day off and read it all :-) Please keep writing Lisakhttps://www.blogger.com/profile/12015675829844375240noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-63331070690804251682010-09-17T01:27:13.454+05:302010-09-17T01:27:13.454+05:30I looked at Ben Lippmeier's thesis referenced ...I looked at Ben Lippmeier's thesis referenced in previous comment since this is something I'm been trying to understand.<br /><br />He states:<br />"The first tool is a set of efficient array-like data structures for managing collections of objects, and the second is the ability to broadcast a new value to all parts of a program with minimal burden on the programmer."<br /><br />The first item, he's talking about arrays. Arrays are just plain fast on the metal and especially in performance critical things like scientific computing, arrays have a place. But they can/should be handled in a localized way.<br /><br />I was very surprised to see his second point since that is a global variable. I think I'm not the only one that generally considers global variables as undesirable. He also talks about the difficulty of updating things deep down in a tree, but I think that is handled with things like functional references.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-22587889.post-51832737220615206602010-06-01T05:53:48.003+05:302010-06-01T05:53:48.003+05:30For a broad perspective, Ben Lippmeier's thesi...For a broad perspective, Ben Lippmeier's thesis arguing the need for mutable data structure support in Haskell makes for interesting reading. He's on the "return-leg" of a journey into immutability.<br /><br />From [http://www.cse.unsw.edu.au/~benl/papers/thesis/lippmeier-impure-world.pdf]:<br /><br />"I am thinking of a data structure for managing collections of objects. It provides O(1) insert and update operations. It has native hardware support on all modern platforms. It has a long history of use. It’s proven, and it’s lightning fast.<br /><br />Unfortunately, support for it in my favourite language, Haskell [PJ03a], appears to be somewhat lacking. There are people that would tell me that it’s not needed [PJW92], that there are other options [Oka98b], that it’s bad for<br />parallelism [Can91] and bad for computer science in general [Bac78]. They say that without it, programs are easier to understand and reason about. Yet, it seems that every time I start to write a program I find myself wanting for it."Ben Hutchisonhttps://www.blogger.com/profile/04698002385923057473noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-4481702978769380842010-06-01T05:07:38.502+05:302010-06-01T05:07:38.502+05:30I appreciate your post. Your timing is perfect as ...I appreciate your post. Your timing is perfect as I am currently learning Clojure after spending many years programming in Java. I just starting to wrap my head around the whole concept of functional programming. Some recent work I did in graduate school could definitely benefit from a language more suited to concurrent programming. I look forward to your future posts on this topic. Thanks!Tony Piazzahttps://www.blogger.com/profile/16261861872794503761noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-13496621597788351042010-06-01T04:59:25.792+05:302010-06-01T04:59:25.792+05:30Another great post but the following statement is ...Another great post but the following statement is wildly inaccurate:<br /><br />"And quite contrary to what we tend to believe, given proper language support, these implementations are often as efficient as their imperative counterparts."<br /><br />Purely functional data structures are not only extremely slow on one core but they destroy the scalability of parallelism across multicores.Jon Harrophttps://www.blogger.com/profile/11059316496121100950noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-81396564004406855232010-06-01T04:13:54.464+05:302010-06-01T04:13:54.464+05:30yea i am totally aggree with u buddy it is really ...yea i am totally aggree with u buddy it is really a nice stuffmaddyhttps://www.blogger.com/profile/03510109469540166119noreply@blogger.comtag:blogger.com,1999:blog-22587889.post-91314701267756350842010-05-31T14:34:55.151+05:302010-05-31T14:34:55.151+05:30Hehe, I've got a few posts coming up on this v...Hehe, I've got a few posts coming up on this very topic :) Good stuff.Viksithttps://www.blogger.com/profile/10632398220134734449noreply@blogger.com