Land Of Lisp Çıktı

0
okanakyuz
İleri seviye sitesindeki lisperati (Tılsımlı Programlama) (http://ileriseviye.org/Makale/lisperati-tr/) metninin orjinalinin yazarı Conrad Barski en sonunda bir lisp kitabı çıkarttı. Kitap Lisp diline bir türlü alışamayan meraklılar ile yeni başlayan kullanıcılara hitap ediyor. Ayrıca lisp dilini komik hikayeler ve karikatürler ile anlatmakta. http://landoflisp.com/ sitesinden kitabın 8nci bölümünü okumak da mümkün.

Web sitesinden de öğrenilebileceği gibi ünlü lisp programcısı ve Hackers & Printers adlı Türkçe'ye de çevrilmiş kitabın yazarı Paul Graham'in "Turns out the border between genius and insanity is a pretty cheery place" şeklindeki yorumuna mazhar olan kitap aynı zamanda lisp dünyasının gezegeni olan Planet Lisp (http://planet.lisp.org/) sitesinde de adından söz ettirmekte.

Her ne kadar kitap Common Lisp üzerine yazılmış olsa da CLOS (Common lisp için meta objects. Nesne tabanlı programlamada kullanılmaktadır.) gibi birkaç kilit konuya değinmek yerine kendisine fonksiyonel programlama yolunu tercih etmiş. Kitapda birbirinden farklı metin tabanlı oyunlar yazılarak Lisp dili sevdirilmek istenmiş. Hatta SVG, PNG gibi dosyalar oluşturulmuş ve bir HTTP server uygulaması bile yazılmış.

Kitap kimi özellikleri ile Peter Seibel'in Practical Common Lisp isimli internetten de okunabilen kitabının (http://gigamonkeys.com/book/) gerisinde kalsa da örnek çeşitliliği, anlaşılabilirlik ve eğlence yönünden göz doldurmakta.

Görüşler

0
auselen
http://landoflisp.com/comic_20x_32.png

Merakimdan soruyorum, Lisp ile sorunlu (bugli) program yazmak imkansiz mi? Yani Lisp'in tek olayi bu mu?
0
bmeric
Bug dilden bağımsız bir kavram. Lisp ve genel olarak fonksiyonel dillerin yaygın hatalarda fazla isminin geçmemesi o yaygın hatalara yol açan dillerden ayrı bir dünyada olmasından kaynaklanıyor. Misal integer overflow c ve benzer diller ile gayet basitken(tamsayı vs. tamsayı mod 2^birşeyler) fonksiyonel dillerin çoğunda becerebilmek için rami bitirmek gerektiğinden haliyle bu türden yaygın hatalarda ismi geçmiyor. Tabi her yönelimin kendine has problemleri oluyor.(misal bir çok insana göre dynamic typing başlı başına bug :) )

Sanırım fonksiyonel diller hakkında "yahu çok güzel bugsız programlar yazıyor insanlar bununla" inanışını körükleyen asıl neden Python Paradoxu'nda bahsedilen durumla alakalı.
0
okanakyuz
ayrıca bahsettiğimiz bu kitapta Team-Read Eval RPTL diye bir kısım var. Nasıl lisp ile hata yapabileceğinizi de anlatıyor. Crackera acık kapı oluyor.
0
FZ
Hayir tabii ki. Lisp'in ne gibi 'olaylari' olduguna dair bilgi edinmek için mesela güncel bir habere bakilabilir: Google AI Yarışması Birincisi: Gábor Melis (ve Common Lisp). Ve hayir, tabii ki adamin birinci olmasinin tek sebebi (hatta ikinci, ücüncü sebebi bile) Common Lisp kullanmasi degil. Ama birinci oldu ve uzunca süredir tercih ettigi dil Lisp. Lisp'le ilgili cizgi-roman gibi olmayan bir giris için Lisp tutorial'a bakilabilir. Yahut Successful Lisp kitabina. Ya da "Structure and Interpretation of Computer Programs"a.
0
auselen
Lispcileri giderek "Yehova'nın Şahitleri"ne benzetiyorum.

Kapiya geliyorlar, gitmelerini bekliyorsun...

:)
0
FZ
Enteresan bir yorum olmuş. Yoruma yol açan verdiğim kitap isimleri ve bağlantıları mı oldu kestiremedim. Yoksa Google AI yarışmasında birinci olan çözümün Lisp ile hazırlanmış olmasını vurgulamam mı, onu da bilemedim (özgün haberde geçen çizgi roman tarzı şeyleri açıkçası pek tasvip etmiyorum, ne bileyim bu biraz da 'Logicomix: An Epic Search for Truth' kitabından hazzetmemek gibi bir şey, 'bug çıkması imkansız mı bununla yazınca' gibi haklı ve saçmalığa işaret eden yorumlara yol açtığı için). Kast edilen 'evangelism' gibi bir durum ise o konuda Lisp muhabbetlerinin yapıldığı ortamların için belki ona benzer şeyler olur da, diğer teknolojilere kıyasla Lisp ile ilgili çok daha 'evangelism' yapıldığını düşünüyorum (Perl, Java, C#, vs. ile kıyasladığımda).
0
auselen
(yoğun günler)

Sürekli kitaplardan ya da mucizelerden örnek vererek övülen bir konuya yapılan benzetme benimkisi. Kapı ile anlatmak istediğim ise karşılarındakilerin dinliyor olması olayın boyutunu/ciddiyetini/ciddiyetsizliğini değiştirmiyor, sadece nezaketen yaşanan bir durum.

(son cümleni tam anlayamadım)

Lisp'i beğenmiyor değilim, seninde anladığın üzere daha çok oradaki karikatüreydi tepkim.

Hepimizin ezberlediği gibi bilgisayar bilimleri çok geniş bir alan. Lisp'in de yeri var, C'nin de, Java'nın da, Ruby'nin de... Elindeki soruna göre dili seçmek gerektiğini de herkes biliyor. Gel gelelim 'flame wars forever'.

Endüstri biraz daha farklı tabi, politik kararlara kadar bir çok etken var belirli dillerin daha yaygın olmasına. Üstelik herhangi bir yeni (script diyelim mesela) dil ile arkasına milyon dolarlık insan gücü yığılmış dil aynı olamıyor. Endüstriyel güç ile kağıt üzerindeki spesifikasyonun(?) yarışması hayli zor. Bunun en güzel örneği C herhalde.
0
FZ
Google Sussman'ın gitmesini beklemiş midir kapıdan bilmiyorum ama madem Lisp'ten açıldı laf, şunu da not edelim: Adventures in Advanced Symbolic Programming Gerald Jay Sussman @ Google: "Advanced Symbolic Programming lectures given by Gerald Jay Sussman in Google. Concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Means for decoupling goals from strategy. Mechanisms for implementing additive data-directed invocation. Working with partially-specified entities. Managing multiple viewpoints. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement."
0
cubic-meter
Hackers & Printers değil, Hackers & Painters olacak sanırım.
0
okanakyuz
Aynen .. painters :)
Görüş belirtmek için giriş yapın...

İlgili Yazılar

GNU CLISP 2.34 sürümü çıktı

FZ

ANSI Common Lisp yüksek seviyeli, genel amaçlı bir programlama dilidir. GNU CLISP, Karlsruhe Üniversitesi'nden Bruno Haible ve Münih Üniversitesi'nden Michael Stoll'un ürünüdür. CLISP, ANSI Common Lisp standardında tanımlanmış Lisp dilinin büyük kısmını desteklemektedir. Hemen her türlü UNIX platformunda (Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX, BeOS, NeXTstep, IRIX, AIX ve diğerleri) ve diğer sistemlerde (Windows NT/2000/XP, Windows 95/98/ME) çalışmakta ve bunun için sadece 4 MB RAM bellek yeterli olmaktadır.

C++ içinde Lisp kullanmak

bk

C++ kodlarken "ah şu anda filanca fikrimi Lisp ile ne kadar kolay ifade ederdim" dediğiniz oluyor mu? Bir ortamdan diğerine geçmeye, ayrı ayrı işlemler yapmaya üşenenlerden misiniz?

En az bir evet cevabı verdi iseniz InteLib tam size göre. C++ kodlarken doğrudan Lisp sözdizimine ve semantiğine çok benzer şekilde kod yazmanızı ve doğrudan derlemenizi sağlayan bir kütüphane. Şu anda aktif olarak geliştiriliyor. Ne gerek var ki böyle bir şeye diyenler FAQ belgesini okuyabilirler.

3D Model Tasarımı ve Mirai

FZ

Rainer Joswig, 1999 yılında Mirai ile bir model tasarlayan Bay Raitt'in çalışma seansını yansıtan bir video sunuyor.

Mirai, 3D grafik tasarımı için kullanılan bir yazılım. Common Lisp ile yazılmış ve Allegro Common Lisp üstünde çalışıyor. Yazılımın temelleri daha önceki Symbolics Graphics süitine dayanıyor.

Videoyu buradan indirebilirsiniz.

Kaynak: Planet Lisp

stumpwm: Lisp ile minimalist pencere yöneticisi

FZ

stumpwm GNU/Linux ve UNIX türevleri için minimalist bir pencere yöneticisi ve başlangıç noktası şöyle tanıtılıyor: "StumpWM, programcılarının C ile yazılmış ratpoison'dan kaynaklanan hayalkırıklıkları sonucunda ortaya çıktı. ratpoison kullanmaya başladıktan kısa bir süre sonra fark ettik ki sisteme lispimsi emacs tarzı özellikler katıp duruyorduk. C-t : ile devreye giren bir REPL, kancalar ve gittikçe büyüyen bir Common Lisp alt kümesi.

Açık olan şuydu ki ihtiyaç duyduğumuz şey zırt pırt yeniden durdurup başlatmamıza bizi zorlamayan, kolayca hack edilebilir ve özelleştirme imkanı sunan, sıfırdan Lisp ile yazılmış bir pencere yöneticisi idi."

stumpwm ile ilgili eğlenceli bir videoyu burada izleyebilirsiniz.

Common Lisp ve Bir Optimizasyon Tekniği: Memoization

FZ

"Memoization" tabiri bilgisayar bilimlerinde ilk kez Donald Michie'nin 1968 yılında Nature dergisinde yayımlanan Memo functions and machine learning (Memo fonksiyonları ve makina öğrenimi) makalesi ile gündeme gelmiştir.

Memoization tekniği bir fonksiyonu hesaplarken önceden hesaplanmış değerleri hesaplamadan kullanmak, dolayısı ile işlemi hızlandırmak olarak tarif edilebilir. Sözcük olarak "memorization"ı yani "ezberleme" eylemini çağrıştırmakla birlikte daha genel bir anlamı kapsamaktadır.

Programlama dilinden bağımsız olmakla birlikte, bu yazıda "memoization" tekniğinin Common Lisp'te nasıl kullanılacağına bakacağız. Bunun için Peter Norvig'in PAIP kitabı ana eksenimizi oluşturacak.