<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>For Reekie's Visual Haskell, see&nbsp;<a href="http://ptolemy.eecs.berkeley.edu/~johnr/papers/visual.html">http://ptolemy.eecs.berkeley.edu/~johnr/papers/visual.html</a></div><div><br></div><div>Also take a look on the <b>CAL </b>language (<a href="http://openquark.org/Open_Quark/Welcome.html">http://openquark.org/Open_Quark/Welcome.html</a></div><div>"<i>Welcome to the (...) Open Quark Framework for Java, and the lazy 
functional language CAL.</i>"</div><div>AFAIK, the CAL language is Haskell alike and have a nice editor!!</div><div><br></div><div>Some papers that might be of interest:</div><div><b>VEX</b>:&nbsp;<span class="Apple-style-span" style="font-size: 12px; ">W. Citrin, R. Hall, and B. Zorn. Programming with visual ex- pressions. In VL ’95: Proceedings of the 11th International IEEE Symposium on Visual Languages, page 294, Washington, DC, USA, 1995. IEEE Computer Society.</span></div><div><br></div><div><b>Pivotal</b>&nbsp;<span class="Apple-style-span" style="font-size: 12px; ">Keith Hanna. Interactive Visual Functional Programming. In S Peyton Jones, editor, Proc. Intnl Conf. on Functional Programming, pages 100–112. ACM, October 2002.</span></div><div><br></div><div><b>Visual Haskell</b>&nbsp;<span class="Apple-style-span" style="font-size: 12px; ">Hideki John Reekie. Realtime Signal Processing – Dataflow, Visual, and Functional Programming. PhD thesis, University of Technology at Sydney, 1995.</span></div><div><br></div><div><b>VPF&nbsp;<span class="Apple-style-span" style="font-weight: normal; font-size: 12px; ">Joel Kelso. A Visual Programming Environment for Functional Languages. PhD thesis, Murdoch University, 2002.</span></b></div><div><br></div><div><b>Visual Lambda</b>&nbsp;<span class="Apple-style-span" style="font-size: 12px; ">Laurent Dami and Didier Vallet. Higher-order functional composition in visual form. Technical report, University of Geneva, 1996.</span></div><div><br></div><div>best regards</div><div>Miguel Vilaça</div><div><a href="http://ptolemy.eecs.berkeley.edu/~johnr/papers/visual.html"></a><br><div><div>A 2010/03/24, às 23:30, Dupont Corentin escreveu:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hello,<br>Very interresting.<br>Visual Haskell seems to be very close to the thing i imagined.<br>Mihai what do you think?<br>Unfortunatly i cannot find it on the web!<br>There is something for MS Visual Studio but i don't think this is the same...<br>
<br>Corentin<br><br><br><br><div class="gmail_quote">On Thu, Mar 25, 2010 at 12:07 AM, Miguel Vilaca <span dir="ltr">&lt;<a href="mailto:jmvilaca@di.uminho.pt">jmvilaca@di.uminho.pt</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5"><div style=""><div><div><div style="">Hi all,<div><br></div><div>Concerning INblobs, it's again online; a fire damaged the cable that links the university to the world!!</div><div>I don't update the tool for a long time... but I'll take a look on that.</div>
<div><br></div><div>Concerning visual functional programming,&nbsp;see this small chapter of my thesis about some of the&nbsp;existing languages.</div><div></div></div></div></div></div></div></div><br><div style=""><div><div><div style="">
<div></div><div><br></div><div>There are more subtleties on the visual side than those expected!!</div><div><br></div><div>If you also consider debugging tools, take a look on Ghood&nbsp;<a href="http://hackage.haskell.org/package/GHood" target="_blank">http://hackage.haskell.org/package/GHood</a></div>
<div><br></div><div>best regards</div><div>Miguel Vilaça</div><div><br><div><div>A 2010/03/23, às 05:31, Ronald Guida escreveu:</div><br><blockquote type="cite"><div>On Mon, Mar 22, 2010 at 7:02 PM, Dupont Corentin<br>&lt;<a href="mailto:corentin.dupont@gmail.com" target="_blank">corentin.dupont@gmail.com</a>&gt; wrote:<br>
<blockquote type="cite">Hello, I’m relatively new to Haskell.<br></blockquote><blockquote type="cite">I’m wondering if it exist a tool to graphically represent Haskell code.<br></blockquote>...<br><blockquote type="cite">
Let’s try to do it on a simple example, as an exercise:<br></blockquote><blockquote type="cite">f = Map (+1)<br></blockquote><br>Your graphic for "f = map (+1)" seems much more complex than the<br>corresponding code. &nbsp;I would agree with Ivan Miljenovic:<br>
<blockquote type="cite">I'm of the opinion that unless you just use it on small snippets,<br></blockquote><blockquote type="cite">the generated images will be too large and unwieldy.<br></blockquote><br>The first question I would ask is /why/ would you like to visualize<br>
some Haskell code? &nbsp;If you want to see the high-level structure of<br>a complex program, try SourceGraph. (I have never used it though.)<br><br>On the other hand, if you are trying to visualize Haskell as part of<br>your efforts to learn the language, then I believe it would be best to<br>
draw diagrams by hand, rather than relying on an automated tool.<br>The kinds of things that you'll want to depict are probably going to<br>vary considerably, depending on what you're trying to understand.<br><br>
Consider a few different implementations of the "map" function:<br><br> &nbsp;-- version 1: recursion<br> &nbsp;map1 :: (a -&gt; b) -&gt; [a] -&gt; [b]<br> &nbsp;map1 f [] = []<br> &nbsp;map1 f (x:xs) = (f x) : map1 f xs<br><br> &nbsp;-- version 2: fold<br>
 &nbsp;map2 :: (a -&gt; b) -&gt; [a] -&gt; [b]<br> &nbsp;map2 f = foldr ((:) . f) []<br><br> &nbsp;-- version 3: continuation passing style<br> &nbsp;map3 :: (a -&gt; b) -&gt; [a] -&gt; [b]<br> &nbsp;map3 f xs = map' (\x y -&gt; f x : y) xs<br>
 &nbsp;&nbsp;&nbsp;where<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map' k [] = []<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map' k (y:ys) = k y &nbsp;(map' k ys)<br><br> &nbsp;-- version 4: list comprehension<br> &nbsp;map4 :: (a -&gt; b) -&gt; [a] -&gt; [b]<br> &nbsp;map4 f xs = [f x | x &lt;- xs]<br><br> &nbsp;-- version 5: list monad<br>
 &nbsp;map5 :: (a -&gt; b) -&gt; [a] -&gt; [b]<br> &nbsp;map5 f xs = xs &gt;&gt;= (return . f)<br><br>These all do exactly the same thing, but each one uses different<br>techniques. &nbsp;If I'm trying to learn (or teach) Haskell, I would<br>
probably need a slightly different visual "language" for each one<br>in order to capture the most relevant concepts in a useful way.<br>How would you visualize them?<br><br>@Mihai Maruseac:<br>I think a visual debugger would be a wonderful idea. &nbsp;You may want<br>
to consider how a visual debugger would work with each of these<br>versions of map.<br><br>:-) You might also consider several versions of factorial :-)<br><a href="http://www.willamette.edu/%7Efruehr/haskell/evolution.html" target="_blank">http://www.willamette.edu/~fruehr/haskell/evolution.html</a><br>
<br>-- Ron<br>_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></blockquote></div><br></div></div></div></div><br></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>
</blockquote></div><br></div></body></html>