<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Filtrer, Projiser og Aggreger i Clojure</title>
	<atom:link href="http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/</link>
	<description>om livet som .net utvikler</description>
	<lastBuildDate>Wed, 16 May 2012 21:05:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99969</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Mon, 28 Jun 2010 08:13:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99969</guid>
		<description>Nok en forbedring. Thread-makroen jeg brukte i eksempelet i denne blogposten (&lt;tt&gt;-&gt;&lt;/tt&gt;) sender listen/resultatet videre som &lt;u&gt;andre argument&lt;/u&gt; til neste metode i listen, og det skapte problemer. &lt;tt&gt;-&gt;&gt;&lt;/tt&gt; sender derimot resultatet videre som &lt;u&gt;siste argument&lt;/u&gt;, og da fungerte det bedre. Klarte nå å sette opp en pipeline med partial application uten å bruke &quot;partial&quot;:

&lt;tt&gt;&lt;pre&gt;
(-&gt;&gt; [1 2 3 5 8 13 21 33 54]
		 (filter #(even? %)) 
		 (map #(.toString %)) 
		 (reduce #(str %1 %2 &quot; &quot;) &quot;&quot;)
		 println)
&lt;/pre&gt;&lt;/tt&gt;

Output fra denne lille Clojure-snutten er &quot;2 8 54&quot;. Clojure oppfører seg nå som forventet i forhold til det jeg har lært fra F#.., herlig å kunne overføre kunnskap fra et språk til et annet!</description>
		<content:encoded><![CDATA[<p>Nok en forbedring. Thread-makroen jeg brukte i eksempelet i denne blogposten (<tt>-&gt;</tt>) sender listen/resultatet videre som <u>andre argument</u> til neste metode i listen, og det skapte problemer. <tt>-&gt;&gt;</tt> sender derimot resultatet videre som <u>siste argument</u>, og da fungerte det bedre. Klarte nå å sette opp en pipeline med partial application uten å bruke &#8220;partial&#8221;:</p>
<p><tt>
<pre>
(-&gt;&gt; [1 2 3 5 8 13 21 33 54]
		 (filter #(even? %))
		 (map #(.toString %))
		 (reduce #(str %1 %2 " ") "")
		 println)
</pre>
<p></tt></p>
<p>Output fra denne lille Clojure-snutten er &#8220;2 8 54&#8243;. Clojure oppfører seg nå som forventet i forhold til det jeg har lært fra F#.., herlig å kunne overføre kunnskap fra et språk til et annet!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99714</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Fri, 25 Jun 2010 09:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99714</guid>
		<description>Bare hyggelig :)</description>
		<content:encoded><![CDATA[<p>Bare hyggelig :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99713</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Fri, 25 Jun 2010 09:14:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99713</guid>
		<description>Tydeligvis ikke. Kanskje det bare er jeg som får lov til det :) Uansett takk for kodeeksemplet, interresant!</description>
		<content:encoded><![CDATA[<p>Tydeligvis ikke. Kanskje det bare er jeg som får lov til det :) Uansett takk for kodeeksemplet, interresant!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99712</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Fri, 25 Jun 2010 09:04:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99712</guid>
		<description>Ser ikke ut som om det virket.</description>
		<content:encoded><![CDATA[<p>Ser ikke ut som om det virket.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99710</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Fri, 25 Jun 2010 09:03:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99710</guid>
		<description>Ah, takk.

(define (-&gt; x . fs)
  (define (chain x fs)
    (if (null? fs) x (chain ((car fs) x) (cdr fs))))
  (chain x fs))
(define (curry f . x) (lambda y (apply f (append x y))))
(define aList &#039;(1 2 3 4 5 6 7 8 9 10))
(define (reduce f base lis)
  (if (null? lis)
    base
    (f (car lis) (reduce f base (cdr lis)))))

(-&gt; aList
    (curry filter (lambda (x) (= (modulo x 2) 0)))
    (curry map number-&gt;string)
    (curry reduce (lambda (x y) (string-append x &quot; &quot; y)) &quot;&quot;)
    display)

Jeg tror ikke scheme har partial, comp og reduce innebygget, så jeg lagde meg dem.</description>
		<content:encoded><![CDATA[<p>Ah, takk.</p>
<p>(define (-&gt; x . fs)<br />
  (define (chain x fs)<br />
    (if (null? fs) x (chain ((car fs) x) (cdr fs))))<br />
  (chain x fs))<br />
(define (curry f . x) (lambda y (apply f (append x y))))<br />
(define aList &#8216;(1 2 3 4 5 6 7 8 9 10))<br />
(define (reduce f base lis)<br />
  (if (null? lis)<br />
    base<br />
    (f (car lis) (reduce f base (cdr lis)))))</p>
<p>(-&gt; aList<br />
    (curry filter (lambda (x) (= (modulo x 2) 0)))<br />
    (curry map number-&gt;string)<br />
    (curry reduce (lambda (x y) (string-append x &#8221; &#8221; y)) &#8220;&#8221;)<br />
    display)</p>
<p>Jeg tror ikke scheme har partial, comp og reduce innebygget, så jeg lagde meg dem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99709</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Fri, 25 Jun 2010 08:53:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99709</guid>
		<description>Ameth, et tips hvis du vil skrive kode i kommentarene. Bruk &lt;tt&gt;&lt;pre&gt;{koden din her}&lt;/pre&gt;&lt;/tt&gt;</description>
		<content:encoded><![CDATA[<p>Ameth, et tips hvis du vil skrive kode i kommentarene. Bruk &lt;tt&gt;&lt;pre&gt;{koden din her}&lt;/pre&gt;&lt;/tt&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99707</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Fri, 25 Jun 2010 08:47:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99707</guid>
		<description>Og da har jeg funnet ut hvordan partial application og function composition fungerer i Clojure også! Her er et eksempel hvor jeg hvor jeg bruker begge deler til å kombinere 3 anonyme funksjoner:
&lt;tt&gt;&lt;pre&gt;
(def produce-even-string 
		 (comp 
			 (partial reduce #(str %1 %2 &quot; &quot;) &quot;&quot;)
			 (partial map #(.toString %))
			 (partial filter (fn [n] (= (rem n 2) 0)))))

(println (produce-even-string a-list))
&lt;/pre&gt;&lt;/tt&gt;</description>
		<content:encoded><![CDATA[<p>Og da har jeg funnet ut hvordan partial application og function composition fungerer i Clojure også! Her er et eksempel hvor jeg hvor jeg bruker begge deler til å kombinere 3 anonyme funksjoner:<br />
<tt>
<pre>
(def produce-even-string
		 (comp
			 (partial reduce #(str %1 %2 " ") "")
			 (partial map #(.toString %))
			 (partial filter (fn [n] (= (rem n 2) 0)))))

(println (produce-even-string a-list))
</pre>
<p></tt></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99706</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Fri, 25 Jun 2010 08:34:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99706</guid>
		<description>Noe slikt du mener? (i scheme (noe jeg og er ganske nybegynner i))

(define (-&gt; x . fs)
  (define (chain x fs)
    (if (null? fs) x (chain ((car fs) x) (cdr fs))))
  (chain x fs))
(define (curry f . x) (lambda y (apply f (append x y))))
(define aList &#039;(1 2 3 4 5 6 7 8 9 10))
(define (reduce f base lis)
  (if (null? lis)
    base
    (f (car lis) (reduce f base (cdr lis)))))

(-&gt; aList
    (curry filter (lambda (x) (= (modulo x 2) 0)))
    (curry map number-&gt;string)
    (curry reduce (lambda (x y) (string-append x &quot; &quot; y)) &quot;&quot;)
    display)</description>
		<content:encoded><![CDATA[<p>Noe slikt du mener? (i scheme (noe jeg og er ganske nybegynner i))</p>
<p>(define (-&gt; x . fs)<br />
  (define (chain x fs)<br />
    (if (null? fs) x (chain ((car fs) x) (cdr fs))))<br />
  (chain x fs))<br />
(define (curry f . x) (lambda y (apply f (append x y))))<br />
(define aList &#8216;(1 2 3 4 5 6 7 8 9 10))<br />
(define (reduce f base lis)<br />
  (if (null? lis)<br />
    base<br />
    (f (car lis) (reduce f base (cdr lis)))))</p>
<p>(-&gt; aList<br />
    (curry filter (lambda (x) (= (modulo x 2) 0)))<br />
    (curry map number-&gt;string)<br />
    (curry reduce (lambda (x y) (string-append x &#8221; &#8221; y)) &#8220;&#8221;)<br />
    display)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99705</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Fri, 25 Jun 2010 08:24:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/24/filtrer-projiser-og-aggreger-i-clojure/#comment-99705</guid>
		<description>PS: Oppdaget akkurat at Clojure har en even-funskjon. Det betyr at &lt;tt&gt;(= (rem % 2) 0)&lt;/tt&gt; kan erstattes med &lt;tt&gt;(even? %)&lt;/tt&gt;.</description>
		<content:encoded><![CDATA[<p>PS: Oppdaget akkurat at Clojure har en even-funskjon. Det betyr at <tt>(= (rem % 2) 0)</tt> kan erstattes med <tt>(even? %)</tt>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

