<?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, aggreger</title>
	<atom:link href="http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/</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: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98365</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Thu, 10 Jun 2010 08:27:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98365</guid>
		<description>Joda, pipelining brukes mye, i den grad det kan kalles det. Hele do-notasjonen er syntaktisk sukker for pipelining av monader ((do {x &gt;= \x -&gt; putStrLn x) == (getLine &gt;&gt;= putStrLn)), men for funksjoner er det som oftest baklengs som i det første eksempelet mitt. (&#124;&gt;) er som du ser bare en annen funksjon med dens argumenter byttet om (flip f a b = f b a) (og (&#124;&gt;) er også definert i «pointfree»...)</description>
		<content:encoded><![CDATA[<p>Joda, pipelining brukes mye, i den grad det kan kalles det. Hele do-notasjonen er syntaktisk sukker for pipelining av monader ((do {x &gt;= \x -&gt; putStrLn x) == (getLine &gt;&gt;= putStrLn)), men for funksjoner er det som oftest baklengs som i det første eksempelet mitt. (|&gt;) er som du ser bare en annen funksjon med dens argumenter byttet om (flip f a b = f b a) (og (|&gt;) er også definert i «pointfree»&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98351</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Thu, 10 Jun 2010 06:19:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98351</guid>
		<description>Jepp, mye bedre! ;)

Selvfølgelig kan det tenkes at jeg er utsatt for å tolke leseligheten som dårlig fordi jeg ikke er vandt til syntaksen. Men jeg har tatt meg selv i å lure på om man ikke ofrer litt vel mye lesbarhet når man skriver så konsis kode som jeg ofte ser spesielt fra funksjonsbaserte språk. &quot;Pointfree&quot; er ett eksempel på noe jeg vil være forsiktig med. 

Jeg antar at pipelining ikke er så vanlig å bruke i Haskell, og kanskje ikke i andre FP-språk heller, men for en med OO-bakgrunn blir det lettere å forstå. F#-koden min i oppsummeringen ville i praksis vårt helt lik i C# om jeg brukte Linq og method chaining.

I objektorientert programmering har vi blitt mer og mer opptatt av lesbar kode, og bryter f.eks. gjerne opp i mange små metoder kun for å oppnå beskrivende navn / selvdokumenterende kode. Kunsten er å balansere mengde kode med hvor mye hjernekapasitet som må til for å forstå den! Utviklere bruker mye mer tid på å lese kode enn å skrive den..</description>
		<content:encoded><![CDATA[<p>Jepp, mye bedre! ;)</p>
<p>Selvfølgelig kan det tenkes at jeg er utsatt for å tolke leseligheten som dårlig fordi jeg ikke er vandt til syntaksen. Men jeg har tatt meg selv i å lure på om man ikke ofrer litt vel mye lesbarhet når man skriver så konsis kode som jeg ofte ser spesielt fra funksjonsbaserte språk. &#8220;Pointfree&#8221; er ett eksempel på noe jeg vil være forsiktig med. </p>
<p>Jeg antar at pipelining ikke er så vanlig å bruke i Haskell, og kanskje ikke i andre FP-språk heller, men for en med OO-bakgrunn blir det lettere å forstå. F#-koden min i oppsummeringen ville i praksis vårt helt lik i C# om jeg brukte Linq og method chaining.</p>
<p>I objektorientert programmering har vi blitt mer og mer opptatt av lesbar kode, og bryter f.eks. gjerne opp i mange små metoder kun for å oppnå beskrivende navn / selvdokumenterende kode. Kunsten er å balansere mengde kode med hvor mye hjernekapasitet som må til for å forstå den! Utviklere bruker mye mer tid på å lese kode enn å skrive den..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98348</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Thu, 10 Jun 2010 06:03:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98348</guid>
		<description>Hmm? Det er jo akkurat samme kode som din, bare baklengs. Hvis du tenker på «((++).(++&quot; &quot;))» så er en «pointfree» versjon av «(\acc n -&gt; acc ++ &quot; &quot; ++ n)» og &quot;unwords&quot; er som sagt et mer leselig alternativ, men da ser du ikke at det er en fold involvert. 

Er dette bedre?
(&#124;&gt;) = flip ($)
aList &#124;&gt; filter even &#124;&gt; map show &#124;&gt; unwords &#124;&gt; putStrLn</description>
		<content:encoded><![CDATA[<p>Hmm? Det er jo akkurat samme kode som din, bare baklengs. Hvis du tenker på «((++).(++&#8221; &#8220;))» så er en «pointfree» versjon av «(\acc n -&gt; acc ++ &#8221; &#8221; ++ n)» og &#8220;unwords&#8221; er som sagt et mer leselig alternativ, men da ser du ikke at det er en fold involvert. </p>
<p>Er dette bedre?<br />
(|&gt;) = flip ($)<br />
aList |&gt; filter even |&gt; map show |&gt; unwords |&gt; putStrLn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Torbjørn</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98334</link>
		<dc:creator>Torbjørn</dc:creator>
		<pubDate>Thu, 10 Jun 2010 04:02:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98334</guid>
		<description>Takk for hyggelige kommentarer! Og Armeth,jeg må innrømme at jeg klassifiserer dine Haskell-eksempler blant noe av den mest uleselige koden jeg har sett. Ser ut som et forsøk på å være kryptisk. Selv Lisp, med alle parantesene, ser bedre ut etter å ha fått en fem minutters introduksjon ;)</description>
		<content:encoded><![CDATA[<p>Takk for hyggelige kommentarer! Og Armeth,jeg må innrømme at jeg klassifiserer dine Haskell-eksempler blant noe av den mest uleselige koden jeg har sett. Ser ut som et forsøk på å være kryptisk. Selv Lisp, med alle parantesene, ser bedre ut etter å ha fått en fem minutters introduksjon ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ameth</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98299</link>
		<dc:creator>Ameth</dc:creator>
		<pubDate>Wed, 09 Jun 2010 23:02:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98299</guid>
		<description>Currying og nå Higher Order Functions... Jeg synes du går i riktig retning ^_^

Og som vanlig:
putStrLn . foldl1 ((++).(++&quot; &quot;)) . map show . filter even $ aList
(«foldl1 ((++).(++&quot; &quot;))» kalles også «unwords», bortsett fra at førstnevnte ikke tåler en tom liste.)</description>
		<content:encoded><![CDATA[<p>Currying og nå Higher Order Functions&#8230; Jeg synes du går i riktig retning ^_^</p>
<p>Og som vanlig:<br />
putStrLn . foldl1 ((++).(++&#8221; &#8220;)) . map show . filter even $ aList<br />
(«foldl1 ((++).(++&#8221; &#8220;))» kalles også «unwords», bortsett fra at førstnevnte ikke tåler en tom liste.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ole Gunnar Borstad</title>
		<link>http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98264</link>
		<dc:creator>Ole Gunnar Borstad</dc:creator>
		<pubDate>Wed, 09 Jun 2010 12:43:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/#comment-98264</guid>
		<description>Ryddig framstilling , gode eksempler, enkle forklaringer. Bra innhold som alltid på denne bloggen!

Det er mange som ikke vet om mulighetene med høyere ordens funksjoner og f.eks LINQ. Temaet kan virke veldig tungt hvis det framstilles for akademisk, så det er godt å se en lettspiselig forklaring på temaet!</description>
		<content:encoded><![CDATA[<p>Ryddig framstilling , gode eksempler, enkle forklaringer. Bra innhold som alltid på denne bloggen!</p>
<p>Det er mange som ikke vet om mulighetene med høyere ordens funksjoner og f.eks LINQ. Temaet kan virke veldig tungt hvis det framstilles for akademisk, så det er godt å se en lettspiselig forklaring på temaet!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

