<br><br><div class="gmail_quote">On Fri, Jun 5, 2009 at 8:18 AM, Conor McBride <span dir="ltr">&lt;<a href="mailto:conor@strictlypositive.org">conor@strictlypositive.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Comrades<br>
<br>
I&#39;m in a perplexing situation and I&#39;d like to appeal to the<br>
sages.<br>
<br>
I&#39;ve never written anything other than static HTML in my life,<br>
and I&#39;d like to make a wee web service: I&#39;ve heard some<br>
abbreviations, but I don&#39;t really know what they mean.<br>
<br>
I&#39;ve got a function (possibly the identity, possibly const &quot;&quot;,<br>
who knows?)<br>
<br>
  assistant :: String -&gt; String<br>
<br>
and I want to make a webpage with an edit box and a submit<br>
button. If I press the submit button with the edit box<br>
containing string s, I&#39;d like the page to reload with the<br>
edit box reset to (assistant s).<br>
<br>
Will I need to ask systems support to let me install some<br>
haskelly sort of web server? Looks likely, I suppose.<br>
<br>
In general, what&#39;s an easy way to put a web front end on<br>
functionality implemented in Haskell?</blockquote><div><br></div><div>Several of us cobbled together a web service version of lambdabot at one point.  We used fast cgi plus apache on the unix side.  In the program we used the fastcgi haskell bindings (I forget which package), and excuted lambdabot as a subprocess and communicated over pipes, I think.  Then on the web page side there was a bit of ajax that executed the cgi request and spliced the value into the webpage.  It no longer works due to changes in lambdabot, but all lambdabot knew was that it was running as a normal unix process.  In a simpler world the code that used the cgi bindings could directly import your assistant function.</div>
<div><br></div><div>I can try to dig up the sources if you want to see the code.  It was pretty slick.  And I&#39;d say the bottom line is, you just need (fast) cgi bindings and you&#39;re good on any host where cgi is supported.</div>
<div><br></div><div>Jason</div></div>