<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4044231503158486394</id><updated>2012-03-17T12:00:10.409+04:00</updated><category term='clisp'/><category term='scheme'/><category term='freebsd'/><category term='Okasaki'/><category term='lisp'/><category term='racket'/><category term='fprog'/><category term='lambda'/><category term='sbcl'/><category term='fp'/><category term='project euler'/><title type='text'>yuridichesky</title><subtitle type='html'>Юрий Арапов</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yuridichesky.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4044231503158486394/posts/default/-/fprog'/><link rel='alternate' type='text/html' href='http://yuridichesky.blogspot.com/search/label/fprog'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>yuridichesky</name><uri>http://www.blogger.com/profile/12769667205823830210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-zlcwsYllyIU/To3GX79nyaI/AAAAAAAAAD4/cd2kpsExNJE/s220/noidea.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4044231503158486394.post-3331323888057910731</id><published>2011-05-02T20:41:00.000+04:00</published><updated>2011-05-02T20:41:28.042+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fp'/><category scheme='http://www.blogger.com/atom/ns#' term='racket'/><category scheme='http://www.blogger.com/atom/ns#' term='Okasaki'/><category scheme='http://www.blogger.com/atom/ns#' term='scheme'/><category scheme='http://www.blogger.com/atom/ns#' term='fprog'/><title type='text'>Purely Functional Random-Access Lists implemented in Scheme (Racket)</title><content type='html'>David Van Horn написал на Scheme (точнее, на Racket) &lt;a href="http://dvanhorn.lambda-calcul.us/2011/05/01/list-challenge/"&gt;чистый функциональный список с произвольным достпупом&lt;/a&gt; (исходники &lt;a href="http://planet.racket-lang.org/display.ss?package=ralist.plt&amp;owner=dvanhorn"&gt;здесь&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Под капотом реализация из Okasaki (FPCA '95): список в виде дерева со всеми вытекющими.&lt;br /&gt;&lt;br /&gt;Например:&lt;blockquote&gt;&lt;pre&gt;&lt;p style="font-size:95%"&gt;$ (time (length (make-list (expt 2 100000) 'x)))&lt;br /&gt;cpu time: 5659 real time: 5678 gc time: 1823&lt;br /&gt;...&lt;br /&gt;$ (define ls* (time (list-set ls 8989891824312123128989813 'q)))&lt;br /&gt;cpu time: 1850 real time: 1864 gc time: 291&lt;br /&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;А если еще вспомнить Guy Steele (... foldl and foldr considered slightly harmful, &lt;a href="http://labs.oracle.com/projects/plrg/Publications/ICFPAugust2009Steele.pdf"&gt;pdf&lt;/a&gt;), то подобная реализация хорошо подходит для алгоритмов распараллеливания.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4044231503158486394-3331323888057910731?l=yuridichesky.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuridichesky.blogspot.com/feeds/3331323888057910731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4044231503158486394&amp;postID=3331323888057910731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4044231503158486394/posts/default/3331323888057910731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4044231503158486394/posts/default/3331323888057910731'/><link rel='alternate' type='text/html' href='http://yuridichesky.blogspot.com/2011/05/purely-functional-random-access-lists.html' title='Purely Functional Random-Access Lists implemented in Scheme (Racket)'/><author><name>yuridichesky</name><uri>http://www.blogger.com/profile/12769667205823830210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-zlcwsYllyIU/To3GX79nyaI/AAAAAAAAAD4/cd2kpsExNJE/s220/noidea.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4044231503158486394.post-5109206239012625588</id><published>2011-04-26T00:19:00.003+04:00</published><updated>2011-04-26T16:13:20.376+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lambda'/><category scheme='http://www.blogger.com/atom/ns#' term='fp'/><category scheme='http://www.blogger.com/atom/ns#' term='scheme'/><category scheme='http://www.blogger.com/atom/ns#' term='fprog'/><title type='text'>Easy Introduction to The Lambda Calculus</title><content type='html'>Попалась на глаза забавная и поучительная запись &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2008/12/03/the-lambda-calculus.aspx"&gt;[Easy Introduction to] The Lambda Calculus&lt;/a&gt;.  Может быть даже не easy, а funny introduction.&lt;br /&gt;&lt;br /&gt;Там при помощи Scheme "на пальцах" показано, почему lambda, собственно говоря, the ultimate.&lt;br /&gt;&lt;br /&gt;К примеру&lt;blockquote&gt;&lt;pre&gt;(define (true a b) a) &lt;br /&gt;(define (false a b) b) &lt;br /&gt;(define (if c a b) (c a b))&lt;br /&gt;...&lt;br /&gt;(define (cons a b) (λ (c) (if c a b))) &lt;br /&gt;(define (car c) (c true)) &lt;br /&gt;(define (cdr c) (c false))&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4044231503158486394-5109206239012625588?l=yuridichesky.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yuridichesky.blogspot.com/feeds/5109206239012625588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4044231503158486394&amp;postID=5109206239012625588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4044231503158486394/posts/default/5109206239012625588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4044231503158486394/posts/default/5109206239012625588'/><link rel='alternate' type='text/html' href='http://yuridichesky.blogspot.com/2011/04/easy-introduction-to-lambda-calculus.html' title='Easy Introduction to The Lambda Calculus'/><author><name>yuridichesky</name><uri>http://www.blogger.com/profile/12769667205823830210</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-zlcwsYllyIU/To3GX79nyaI/AAAAAAAAAD4/cd2kpsExNJE/s220/noidea.jpeg'/></author><thr:total>0</thr:total></entry></feed>
