🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215822

Re: "Najbardziej imponujący kod, jaki widziałem"

#215822
From: godek.maciek
Date: Tue, 06 Aug 2019 13:45
29 lines
3379 bytes
W dniu wtorek, 6 sierpnia 2019 15:32:26 UTC+2 użytkownik Borneq napisał:

> > gdyby ktoś był zainteresowany, to ostatnio opublikowałem na Quorze nieco przydługawy artykuł (czy może raczej "małą książkę"?) objaśniający technikę Friedmana i Byrda "uruchamiania ewaluatora od tyłu".
> > 
> > https://www.quora.com/Can-you-explain-to-non-coders-the-most-impressive-code-youve-seen/answer/Panicz-Godek
> > 
> > W ogólności pytanie "jaki jest najbardziej imponujący kod, jaki widziałeś" wydaje mi się ciekawe, więc jeśli ktoś tu ma jakieś swoje obserwacje na ten temat, z chęcią bym się dowiedział.
> > 
> > Pozdrawiam
> > 
> Daję namiar:
> https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf
> 
> "Relational Programming in miniKanren:Techniques, Applications, 
> andImplementations"

Posiłkowałem się tym, zwłaszcza przy obsłudze więzów.
Inne źródło to artykuł Friedmanna i Hemanna o minimalistycznej wersji minikanrena zwanej "microkanren" (albo uKanren):

http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf

Ale jeśli ktoś ma za małą motywację do czytania, to jest też film warsztatowy:

https://www.youtube.com/watch?v=0FwIwewHC3o

Przyznam też, że pomocna była dla mnie lektura źródeł microkanrena w Haskellu (dzięki systemowi typów rozumiało mi się to dużo lepiej, niż implementację w Scheme):
https://gist.github.com/msullivan/4223fd47991acbe045ec

ale moja implementacja różni się na kilka istotnych sposobów od miniKanrena, bo mieliśmy inne priorytety - im zależało na przenośności i integrowalności ich języka w różnych środowiskach (i w pewnej mierze na wydajności), a mnie na czytelności języka i łatwości prezentacji
Technical Details
Message-ID: <cf14e2d6-7daf-4132-b025-e9a472a54499@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-1.dfn.de!news.dfn.de!news.uni-stuttgart.de!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!b26no6337434qtq.0!news-out.google.com!a5ni1392qtd.0!nntp.google.com!b26no6337429qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <edc55064-0038-4844-a994-4cddd7d77d76@googlegroups.com> <5d498144$0$530$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
X-Received: by 2002:aed:37e7:: with SMTP id j94mr2999865qtb.75.1565099160194;        Tue, 06 Aug 2019 06:46:00 -0700 (PDT)
X-Received: by 2002:a37:7a84:: with SMTP id v126mr3109711qkc.439.1565099159995; Tue, 06 Aug 2019 06:45:59 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-1.dfn.de!news.dfn.de!news.uni-stuttgart.de!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!b26no6337434qtq.0!news-out.google.com!a5ni1392qtd.0!nntp.google.com!b26no6337429qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 6 Aug 2019 06:45:59 -0700 (PDT)
In-Reply-To: <5d498144$0$530$65785112@news.neostrada.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.68.153; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.68.153
References: <edc55064-0038-4844-a994-4cddd7d77d76@googlegroups.com> <5d498144$0$530$65785112@news.neostrada.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cf14e2d6-7daf-4132-b025-e9a472a54499@googlegroups.com>
Subject: Re: "Najbardziej imponujący kod, jaki
 widziałem"
From: godek.maciek@gmail.com
Injection-Date: Tue, 06 Aug 2019 13:46:00 +0000
X-Received-Bytes: 3572
X-Received-Body-CRC: 2974801469
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit