<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.1" -->
<?xml-stylesheet href="http://scala.sygneca.com//lib/styles/feed.css" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://scala.sygneca.com//feed.php">
        <title>Scala Wiki patterns</title>
        <description></description>
        <link>http://scala.sygneca.com//</link>
        <image rdf:resource="http://scala.sygneca.com//lib/images/favicon.ico" />
       <dc:date>2010-09-03T01:13:17+01:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/component-mixins?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/duck-typing-done-right?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/dynamic-scope?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofabstractfactory?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofchainofresponsibility?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofcommand?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofcomposite?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofflyweight?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/gofsingleton?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/loan?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/memoization?rev=1271780709"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/pattern-replacements?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/pimp-my-library?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/sidebar?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/start?rev=1265879458"/>
                <rdf:li rdf:resource="http://scala.sygneca.com//patterns/utility-belt?rev=1265879458"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://scala.sygneca.com//lib/images/favicon.ico">
        <title>Scala Wiki</title>
        <link>http://scala.sygneca.com//</link>
        <url>http://scala.sygneca.com//lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://scala.sygneca.com//patterns/component-mixins?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:component-mixins</title>
        <link>http://scala.sygneca.com//patterns/component-mixins?rev=1265879458</link>
        <description> This pattern is described in the paper Scalable Component Abstractions by Martin Odersky and Matthias Zenger.  The term &amp;ldquo;Cake pattern&amp;rdquo; was coined later, in this thread: http://www.nabble.com/Inheriting-static-members-td10106162.html . Jo...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/duck-typing-done-right?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:duck-typing-done-right</title>
        <link>http://scala.sygneca.com//patterns/duck-typing-done-right?rev=1265879458</link>
        <description> Duck typing is often used in dynamic languages - http://en.wikipedia.org/wiki/Duck_typing. You can do this with scala in a perfectly type safe way using structural types.   You can either define the signature in the method signature (as shown in the...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/dynamic-scope?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:dynamic-scope</title>
        <link>http://scala.sygneca.com//patterns/dynamic-scope?rev=1265879458</link>
        <description>   'Dynamic scope' pattern   Like most modern languages, Scala is lexically scoped, i.e. the scope of a variable is determined by the nesting of braces in the source code. Dynamic scoping instead makes variables available based on the nesting of func...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofabstractfactory?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofabstractfactory</title>
        <link>http://scala.sygneca.com//patterns/gofabstractfactory?rev=1265879458</link>
        <description>trait Factory &amp;#123;    def create&amp;#40;instanceType:String&amp;#41;:Command &amp;nbsp; &amp;nbsp; &amp;#125; &amp;nbsp; &amp;nbsp; &amp;nbsp;class FactoryImpl extends Factory&amp;#123;    def create&amp;#40;instanceType:String&amp;#41;:Command = instanceType match &amp;#123;   case &quot;validate&quot; ...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofchainofresponsibility?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofchainofresponsibility</title>
        <link>http://scala.sygneca.com//patterns/gofchainofresponsibility?rev=1265879458</link>
        <description> The idea of the pattern is to decouple the sender of a request from the receiver of that request. Essentially the sender is unaware of the chain of handlers; each handler may pass on the request to the next handler in the chain.   Here is a straight...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofcommand?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofcommand</title>
        <link>http://scala.sygneca.com//patterns/gofcommand?rev=1265879458</link>
        <description>trait Command &amp;#123; def execute&amp;#40;&amp;#41;:Unit &amp;#125;class ValidateCommand extends Command &amp;#123; def execute&amp;#123;  println&amp;#40;&quot;validate command executed ...&quot;&amp;#41; &amp;#125;  &amp;#125;...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofcomposite?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofcomposite</title>
        <link>http://scala.sygneca.com//patterns/gofcomposite?rev=1265879458</link>
        <description>package pattern &amp;nbsp; class Activity&amp;#40;val name : String&amp;#41; &amp;#123;  protected var nested : List&amp;#91;Activity&amp;#93; = Nil  var parent : Option&amp;#91;Activity&amp;#93; = None   def subActivities = nested.reverse  def level : Int = &amp;#123;   var i = 0   fo...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofflyweight?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofflyweight</title>
        <link>http://scala.sygneca.com//patterns/gofflyweight?rev=1265879458</link>
        <description> The Flyweight pattern is a special kind of Memoization where the memoized function is a constructor. This pattern is especially relevant in Scala for implicit conversions to RichFoo objects.  ...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/gofsingleton?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:gofsingleton</title>
        <link>http://scala.sygneca.com//patterns/gofsingleton?rev=1265879458</link>
        <description> This pattern is elevated to a language construct in Scala. You can use the object keyword to create an object which serves the cause.  import scala.collection.jcl._ &amp;nbsp; object MySingleton extends ArrayList&amp;#123; &amp;nbsp;  //create a singleton calle...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/loan?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:loan</title>
        <link>http://scala.sygneca.com//patterns/loan?rev=1265879458</link>
        <description> Ensures that a resource is deterministically disposed of once it goes out of scope.  The normal way to do this in Java is with a try ... finally block, which leads to ugly and fragile code, especially when there are multiple resources: var r : Resou...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/memoization?rev=1271780709">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-20T17:25:09+01:00</dc:date>
        <title>patterns:memoization</title>
        <link>http://scala.sygneca.com//patterns/memoization?rev=1271780709</link>
        <description> In memoization, the results of a function are memoized&amp;mdash; recorded in a Map indexed by the function&amp;rsquo;s argument(s). This saves the computation required to execute the original function as well as reducing memory which which might be used up...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/pattern-replacements?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:pattern-replacements</title>
        <link>http://scala.sygneca.com//patterns/pattern-replacements?rev=1265879458</link>
        <description> Some common patterns may be better implemented using features specific to Scala (or at least less common in other OO languages).   Singleton pattern   The singleton pattern describes a way to ensure that only one instance of an object exists. Scala&amp;...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/pimp-my-library?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:pimp-my-library</title>
        <link>http://scala.sygneca.com//patterns/pimp-my-library?rev=1265879458</link>
        <description> The name of this pattern comes from Martin Odersky&amp;rsquo;s article.  To illustrate, here&amp;rsquo;s an example from the mailing list. The goal is to add a headOr method to the standard library List class, without modifying the Scala distribution:  We d...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/sidebar?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:sidebar</title>
        <link>http://scala.sygneca.com//patterns/sidebar?rev=1265879458</link>
        <description> Patterns  Patterns list  Pattern replacements   Structural patterns  Cake  Dynamic scope  Utility belt  Reactive abstractions  Pimp my library  Duck typing done right  Memoization   Behavioural patterns  Loan   GoF Design Patterns   Creational Patte...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/start?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:start</title>
        <link>http://scala.sygneca.com//patterns/start?rev=1265879458</link>
        <description>   Scala design patterns   This section lists some design patterns which are useful in Scala programs. There&amp;rsquo;s also the pattern replacements page, which describes ways in which Scala language features make some common patterns unnecessary.     ...</description>
    </item>
    <item rdf:about="http://scala.sygneca.com//patterns/utility-belt?rev=1265879458">
        <dc:format>text/html</dc:format>
        <dc:date>2010-02-11T09:10:58+01:00</dc:date>
        <title>patterns:utility-belt</title>
        <link>http://scala.sygneca.com//patterns/utility-belt?rev=1265879458</link>
        <description> Let&amp;rsquo;s consider the problem of organizing the human-readable messages in an application. We have a number of desirable features:   Extensibility of existing message bundles  Flexibility and choice of messages  Separation of message code from lo...</description>
    </item>
</rdf:RDF>
