<?xml version="1.0"?>
<!-- name="generator" content="gyre/0.0.1" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>eighty-twenty news</title>
    <link>http://www.eighty-twenty.org/index.cgi</link>
    <description></description>
    <language>en</language>

        <item>
      <title>Submatches vs. Recursion in ThiNG Patterns</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/submatch-vs-recpattern-20060522.html</link>
      <description>&lt;p&gt;Submatching in a pattern, &lt;code&gt;+var@pattern&lt;/code&gt;, looks
suspiciously similar to recursion in a
value, &lt;code&gt;var=value&lt;/code&gt;. In each case, we expect a value which
is both named and processed, and in each case, a binding is introduced
into code. The processing in the submatch case is a further
pattern-match operation, and in the recursion case it is a nested
evaluation.&lt;p&gt;

&lt;p&gt;The main difference, besides the overall context, between the two
forms is the scope of the introduced binding: in...</description>
    </item>
    <item>
      <title>Partial-evaluation of Monads in Scheme - A New Hope?</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/monads-in-scheme-20060521.html</link>
      <description>&lt;p&gt;The other day, I &lt;a
href="http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/monads-in-scheme-20060519.html"&gt;noted&lt;/a&gt;
that my generic-monad-in-Scheme implementation suffered from the flaw
of not being able to type-check monad assemblies before any actions
had been executed, and that in general such ahead-of-time checking is
not possible without abstract interpretation of some kind, because the
&lt;em&gt;functional&lt;/em&gt; code in the right-hand-side of the bind operator
can decide &lt;e...</description>
    </item>
    <item>
      <title>Monads in Scheme - A Retraction</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/monads-in-scheme-20060519.html</link>
      <description>&lt;p&gt;I don't know what crack I was smoking the other day, but my &lt;a
href="http://www.eighty-twenty.org/repos/smalltalk-tng/experiments/monad/general-monad.scm"&gt;implementation
of general monads&lt;/a&gt; not only does not have the property I &lt;a
href="http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/spikes-20060508.html#monads-in-scheme"&gt;claimed&lt;/a&gt;
for it, viz. that it provides the same level of type-checking as
Haskell &lt;em&gt;ahead of execution-time&lt;/em&gt;, but it &lt;em&gt;cannot&lt;/em&gt;
provide s...</description>
    </item>
    <item>
      <title>Monads in Scheme - Update</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/monads-in-scheme-20060511.html</link>
      <description>&lt;p&gt;Just quickly revisiting the article the other day on &lt;a
href="http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/spikes-20060508.html"&gt;monads
in Scheme&lt;/a&gt;: I've just updated my experimental &lt;a
href="http://www.eighty-twenty.org/repos/smalltalk-tng/experiments/monad/general-monad.scm"&gt;implementation&lt;/a&gt;
to propagate monad type information both forward from the arguments to
the result of the bind operation and backward from the expected result
type to the required argument typ...</description>
    </item>
    <item>
      <title>Trait Composition in ThiNG</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/trait-composition-20060511.html</link>
      <description>&lt;p&gt;Trait composition is one of the fundamental ideas in ThiNG
r3/r4. It's used to assemble pattern-matching clauses in functions, to
assemble definitions into a module, to (functionally-) update
data-structure, to augment generic functions with new definitions, and
to assemble modules into programs.&lt;/p&gt;

&lt;pre class="code"&gt;
define cons [+car: [+cdr: [First: car Rest: cdr]]]
define map [+f: loop=[(cons +a +d): (cons (f a) (loop d)) Nil:Nil]]
&lt;/pre&gt;

&lt;p&gt;Both these definitions use objects with more ...</description>
    </item>
    <item>
      <title>Recent spikes in ThiNG</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/spikes-20060508.html</link>
      <description>&lt;p&gt;
Since I last posted about ThiNG, my ideas have shifted closer to those
expressed in Jay &amp;amp; Kesner's &lt;a
href="http://www-staff.it.uts.edu.au/~cbj/Publications/purepattern.pdf"&gt;Pure
Pattern Calculus&lt;/a&gt;, and I've built a few experimental spikes to gain
some concrete experience with some of the language features and
designs I've been thinking about - among other things, that traits and
modules share a number of core characteristics, and that using monads
to structure effects can be profitabl...</description>
    </item>
    <item>
      <title>The Pure Pattern Calculus, and Extensible Records With Scoped Labels</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/related-papers-20051124.html</link>
      <description>&lt;p&gt;
Two papers very similar to the ideas I've been developing for ThiNG
have popped up in the last couple of weeks:
&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;
&lt;p&gt;
&lt;a href="http://www.cs.uu.nl/~daan/"&gt;Daan Leijen&lt;/a&gt;'s &lt;a
href="http://www.cs.uu.nl/~daan/download/papers/scopedlabels.pdf"&gt;&lt;i&gt;Extensible
records with scoped labels&lt;/i&gt;&lt;/a&gt;: describes an intriguing system for
typing records &lt;i&gt;similar&lt;/i&gt; to those I'm trying to define with
ThiNG.
&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
&lt;a href="http://www-staff.it.uts.edu.au/~cbj/"&gt;Barry Jay&lt;/a&gt; ...</description>
    </item>
    <item>
      <title>Design Problems in ThiNG</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/problems-20051124.html</link>
      <description>&lt;p&gt;
At the moment, I've three main problems in the work I'm doing
designing ThiNG: syntax, semantics, and macros. (Doesn't leave much,
does it?) I'll cover the syntactic and semantic problems tonight
&amp;mdash; my thinking on macros is much too fuzzy to write down at the
moment.
&lt;/p&gt;

&lt;h5&gt;Syntax&lt;/h5&gt;

&lt;p&gt;
I'm leaning toward a concrete syntax that, like Smalltalk and Slate,
makes message-sending the only concise operation, leaving application
in particular as almost second-class. Since I expect mess...</description>
    </item>
    <item>
      <title>ThiNG repository available</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/thing-repo-20051103.html</link>
      <description>&lt;p&gt;
I've been hesitant to make my code publicly available, since it's
embarrassingly messy, but a couple of people have indicated they're
interested in taking a closer look, so here it is:
&lt;/p&gt;

&lt;pre class="code"&gt;
$ darcs get &lt;a href="http://eighty-twenty.org/~tonyg/Darcs/smalltalk-tng"&gt;http://eighty-twenty.org/~tonyg/Darcs/smalltalk-tng&lt;/a&gt;
&lt;/pre&gt;

&lt;p&gt;
The code is mostly written using &lt;a
href="http://www.call-with-current-continuation.org/"&gt;Chicken&lt;/a&gt;
(with my &lt;a
href="http://www.eighty-twenty...</description>
    </item>
    <item>
      <title>Second ThiNG spike</title>
      <link>http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/thing/spike-2-20051017.html</link>
      <description>&lt;p&gt;
Over the weekend I built a second experimental implementation&lt;a
href="#spike-footnote-1"&gt;&lt;sup&gt;[1]&lt;/sup&gt;&lt;/a&gt; of ThiNG (older articles:
&lt;a
href="http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/midnight-inspiration-20040916.html"&gt;1&lt;/a&gt;,
&lt;a
href="http://www.eighty-twenty.org/index.cgi/_STORY_/tech/smalltalk/message-oriented-programming-20050101.html"&gt;2&lt;/a&gt;),
a simple normal-order pattern-matching-based evaluator with a parser
built out of &lt;a
href="http://www.lshift.net/blog/2005/08...</description>
    </item>


  </channel>
</rss>
