<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: tuple code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 26 Jul 2008 05:59:38 GMT</pubDate>
    <description>DZone Snippets: tuple code</description>
    <item>
      <title>step-tuple</title>
      <link>http://snippets.dzone.com/posts/show/2455</link>
      <description>&lt;code&gt;&lt;br /&gt;step-tuple: func [&lt;br /&gt;    val [tuple!]&lt;br /&gt;    /by step [tuple!]&lt;br /&gt;][&lt;br /&gt;    if any [&lt;br /&gt;        3 &lt;&gt; length? val ; can only step values of 3 segments&lt;br /&gt;        val = 255.255.255&lt;br /&gt;    ] [make error! "Can't step tuple value"]&lt;br /&gt;    either step [&lt;br /&gt;        either (val + step) &lt;&gt; val [val + step] [&lt;br /&gt;            make error! "Can't step tuple value"&lt;br /&gt;        ]&lt;br /&gt;    ][&lt;br /&gt;        steps: [0.0.1 0.1.0 1.0.0]&lt;br /&gt;        for i 3 1 -1 [&lt;br /&gt;            either val/:i = 255 [val/:i: 0] [&lt;br /&gt;                return val + first steps&lt;br /&gt;            ]&lt;br /&gt;            steps: next steps&lt;br /&gt;        ]&lt;br /&gt;    ]&lt;br /&gt;]&lt;br /&gt;; foreach val [&lt;br /&gt;;     0.0.0 0.0.255&lt;br /&gt;;     0.1.0 0.255.0 0.255.255&lt;br /&gt;;     1.0.0 0.255.255&lt;br /&gt;;     254.255.255 255.255.254&lt;br /&gt;;     255.254.255 254.255.255&lt;br /&gt;; ][&lt;br /&gt;;     print [val tab step-tuple val]&lt;br /&gt;; ]&lt;br /&gt;; print attempt [step-tuple 255.255.255]&lt;br /&gt;; print attempt [step-tuple 255.255.255.0]&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 22 Aug 2006 01:38:59 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2455</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
    <item>
      <title>step-version</title>
      <link>http://snippets.dzone.com/posts/show/2454</link>
      <description>&lt;code&gt;&lt;br /&gt;step-version: func [&lt;br /&gt;    val [tuple!]&lt;br /&gt;    segment [word!] "'major, 'minor, or 'build"&lt;br /&gt;    /local res&lt;br /&gt;][&lt;br /&gt;    switch segment [&lt;br /&gt;        build [res: val + 0.0.1]&lt;br /&gt;        minor [res: val + 0.1.0  res/3: 0]&lt;br /&gt;        major [res: val + 1.0.0  res/2: 0  res/3: 0]&lt;br /&gt;    ]&lt;br /&gt;    either res &gt; val [res] [none]&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;can-step-version?: func [&lt;br /&gt;    val [tuple!]&lt;br /&gt;    segment [word!] "'major, 'minor, or 'build"&lt;br /&gt;][&lt;br /&gt;    either step-version val segment [true] [false]&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;; foreach val [&lt;br /&gt;;     0.0.0 0.0.255&lt;br /&gt;;     0.1.0 0.255.0 0.255.255&lt;br /&gt;;     1.0.0 0.255.255&lt;br /&gt;;     254.255.255 255.255.254&lt;br /&gt;;     255.254.255 254.255.255&lt;br /&gt;; ][&lt;br /&gt;;     foreach seg [build minor major] [&lt;br /&gt;;         print [val tab seg tab can-step-version? val seg tab attempt [step-version val seg]]&lt;br /&gt;;     ]&lt;br /&gt;; ]&lt;br /&gt;; print attempt [step-version 254.255.255 'test]&lt;br /&gt;; halt&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 22 Aug 2006 01:34:41 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2454</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
    <item>
      <title>convert list of list/tuple to list of object named, python</title>
      <link>http://snippets.dzone.com/posts/show/646</link>
      <description>my version of "named tuple"&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class OList:&lt;br /&gt;    """&lt;br /&gt;        l=[("martin","jean"),("dupond","yves"),("klein","michel")]&lt;br /&gt;        or&lt;br /&gt;        l=[["martin","jean"],["dupond","yves"],["klein","michel"]]&lt;br /&gt;&lt;br /&gt;        ll = OList("nom","prenom")(l)&lt;br /&gt;        print ll[2].prenom,"==",ll[2][1],"==",l[2][1]&lt;br /&gt;    """&lt;br /&gt;    def __init__(self,*a):&lt;br /&gt;        self.__n=list(a)&lt;br /&gt;    def __call__(self,liste):&lt;br /&gt;        class NList(list):&lt;br /&gt;            def __init__(self,n,l):&lt;br /&gt;                assert len(l)==len(n), "No match "+str(n)+" and "+str(l)&lt;br /&gt;                list.__init__(self,l)&lt;br /&gt;                for i in n:&lt;br /&gt;                    setattr(self,i,l[ n.index(i) ])&lt;br /&gt;                self.__noms = n&lt;br /&gt;            def __repr__(self):&lt;br /&gt;                m=" ".join(["""%s='%s'""" % (i,str(getattr(self,i))) for i in self.__noms])&lt;br /&gt;                return "&lt;objet %s&gt;" % m&lt;br /&gt;        return [ NList(self.__n, i) for i in liste ]&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 07 Sep 2005 21:02:41 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/646</guid>
      <author>manatlan (manatlan)</author>
    </item>
  </channel>
</rss>
