<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: lazy code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 01:30:19 GMT</pubDate>
    <description>DZone Snippets: lazy code</description>
    <item>
      <title>Greedy vs Lazy in Regular Expressions</title>
      <link>http://snippets.dzone.com/posts/show/5103</link>
      <description>The greedy expression can be seen as a True *and* False predicate, meaning true while the token is valid, while being false if the pattern matching hasn't been exhausted. &lt;br /&gt;The lazy expression is the True *or* False predicate, meaning true while the token is valid, or false if the pattern match hasn't been fully exhausted.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;irb(main):037:0&gt; "&lt;EM&gt;first&lt;/EM&gt;"[/&lt;.+&gt;/] #greedy &lt;br /&gt;=&gt; "&lt;EM&gt;first&lt;/EM&gt;"&lt;br /&gt;irb(main):038:0&gt; "&lt;EM&gt;first&lt;/EM&gt;"[/&lt;.+?&gt;/] #lazy&lt;br /&gt;=&gt; "&lt;EM&gt;"&lt;br /&gt;irb(main):039:0&gt; "&lt;EM&gt;first&lt;/EM&gt;"[/&lt;[^&lt;&gt;]+&gt;/] # better solution&lt;br /&gt;=&gt; "&lt;EM&gt;"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;source: &lt;a href="http://www.regular-expressions.info/quickstart.html"&gt;Regular Expression Quick Start&lt;/a&gt; [regular-expressions.info]</description>
      <pubDate>Mon, 04 Feb 2008 13:09:56 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5103</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Creating a circular reference between two objects in Java</title>
      <link>http://snippets.dzone.com/posts/show/4445</link>
      <description>This is in some sense the 'right' way of doing it as far as I can figure. Nothing else I've been able to come up with works even close to as well.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class LazyModules &lt;br /&gt;{&lt;br /&gt;  static int i = 0;&lt;br /&gt;&lt;br /&gt;  static abstract class A{&lt;br /&gt;    abstract B getB();&lt;br /&gt;    int k = i++;&lt;br /&gt;    public String toString() { return "" + k; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  static abstract class B{&lt;br /&gt;    abstract A getA();&lt;br /&gt;    int k = i++;&lt;br /&gt;    public String toString() { return "" + k; }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void doStuff(A foo, B bar){&lt;br /&gt;    System.out.println("foo = " + foo);&lt;br /&gt;    System.out.println("foo.b = " + foo.getB());&lt;br /&gt;    System.out.println("bar = " + bar);&lt;br /&gt;    System.out.println("bar.a = " + bar.getA()); &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args){&lt;br /&gt;    new Object(){&lt;br /&gt;      final A foo = new A() { B getB() { return bar; }  };&lt;br /&gt;      final B bar = new B() { A getA() { return foo; }  };&lt;br /&gt;&lt;br /&gt;      { doStuff(foo, bar); }&lt;br /&gt;    };&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 22 Aug 2007 22:03:41 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4445</guid>
      <author>DRMacIver (David R. MacIver)</author>
    </item>
  </channel>
</rss>
