tag:blogger.com,1999:blog-1777990983847811806.post8412251435899967731..comments2015-04-19T03:19:07.016-07:00Comments on Haskell for all: Spreadsheet-like programming in HaskellGabriel Gonzaleznoreply@blogger.comBlogger10125tag:blogger.com,1999:blog-1777990983847811806.post-81097489707324314892014-12-31T15:01:52.203-08:002014-12-31T15:01:52.203-08:00Nobody has implemented an actual spread sheet appl...Nobody has implemented an actual spread sheet application on top of this yet.<br /><br />There are some similarities to functional reactive programming. This answer on Stack Overflow was part of the inspiration for this library (and the second example):<br /><br />http://stackoverflow.com/a/1028642/1026598Gabriel Gonzalezhttp://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-8229296341303952082014-12-01T01:57:03.138-08:002014-12-01T01:57:03.138-08:00Looks great! I don't understand it yet, but I ...Looks great! I don't understand it yet, but I will, soon! ;)<br /><br />Has anyone went so far and implemented a spreadsheet app (expanding on your example)? I would like to do that because I always wanted to have my own light-version of Excel.<br /><br />Also it seems, there are similarities to functional reactive programming (maybe solving similar problems).RJMhttp://www.blogger.com/profile/05083403673307795547noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-4862017526254907812014-10-11T13:58:35.120-07:002014-10-11T13:58:35.120-07:00This comment has been removed by the author.Günther Schmidthttp://www.blogger.com/profile/08750715117486767875noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-80496196659756085192014-06-17T00:58:05.390-07:002014-06-17T00:58:05.390-07:00@Russel: considering that Gabriel implemented spre...@Russel: considering that Gabriel implemented spreadsheet-like programming (and spreadsheet = one-way dataflow constraints), I'd say at least one person cares about constraint programming, enough to do a (somewhat simplistic) implementation.<br /><br />Then there are the million plus iOS/Mac programmers using AutoLayout and KVO/Bindings. AutoLayout is based on the Cassowary constraint solver, KVO/Bindings is equivalent to a simple one-way constraint solver (without formulae)<br /><br />And finally, spreadsheets are the most wide-spread form of programming, and again, spread-sheets = one-way dataflow constraints.<br /><br />So you have a funny definition of "nobody" :-)<br /><br />@Gabriel: what do you mean with "resource management"? Considering the wide variety of constraint systems, are you certain that none have this? In fact, mvc-updates seems quite limited compared to most constraint systems I am aware of.Marcel Weiherhttp://www.blogger.com/profile/11651004661887001433noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-24627396808317880192014-06-17T00:56:53.539-07:002014-06-17T00:56:53.539-07:00This comment has been removed by the author.Marcel Weiherhttp://www.blogger.com/profile/11651004661887001433noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-38697388064535732552014-06-16T14:17:43.588-07:002014-06-16T14:17:43.588-07:00No one cares about constraint programming. Nice ar...No one cares about constraint programming. Nice article though.Russell Stewarthttp://www.blogger.com/profile/12416857172204347731noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-47417838355728171872014-06-15T08:01:52.192-07:002014-06-15T08:01:52.192-07:00I don't use mathematics for the sake of using ...I don't use mathematics for the sake of using mathematics. The purpose behind structuring programs mathematically is to compose small bits of mathematical functionality, each of which is correct in isolation, to build larger mathematical structures which are still correct.<br /><br />Sure, you can always whip up some specialized and non-mathematical solution, but these will rarely generalize to more complex problems well. They will usually solve some very specific problem very well, but the moment you deviate from the problem it was intended to solve it will become very brittle.<br /><br />Even the very example you give (constraint programming systems) demonstrates this issues. Constraint programming lacks the resource management sophistication of `mvc-updates`, where as you combine updatable values it automatically merges their resource management logic, and it's not clear to me how I would extend it with this feature, whereas with `mvc-updates` it was trivial because it took the principled approach.Gabriel Gonzalezhttp://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-21574097397658524352014-06-15T01:27:01.438-07:002014-06-15T01:27:01.438-07:00Constraint programming systems show you that "...Constraint programming systems show you that "spreadsheets" can be implemented (simply) as libraries without the need for any of category theory or abstract algebra.<br /><br />So these don't add anything substantive here, apart from pleasing your personal palate (which is a perfectly fine thing to do).<br />Marcel Weiherhttp://www.blogger.com/profile/11651004661887001433noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-13818427356417546322014-06-14T12:00:30.151-07:002014-06-14T12:00:30.151-07:00I'm a little bit familiar with constraint prog...I'm a little bit familiar with constraint programming, but the main thing I look for in a programming paradigm are programming interfaces inspired by category theory or abstract algebra (i.e. monoids, functors, categories, etc.). Are there analogs of that in constraint programming?Gabriel Gonzalezhttp://www.blogger.com/profile/01917800488530923694noreply@blogger.comtag:blogger.com,1999:blog-1777990983847811806.post-55756109339679770982014-06-14T09:58:16.869-07:002014-06-14T09:58:16.869-07:00Look up constraint programming... :-)Look up constraint programming... :-)Marcel Weiherhttp://www.blogger.com/profile/11651004661887001433noreply@blogger.com