Common Lisp Geliştirme Ortamı Kurulumu

0
FZ
Güncelleme (31 Temmuz 2005): SLIME ile ilgili güzel video adresleri belgenin sonuna eklendi

Şimdiye dek fazlamesai.net sitesinde Lisp ile ilgili bazı belgeler, çeviriler, röportajlar yayınladık*. Yaklaşık 50 yıldır geliştirilen ve hala pek çok yeni dile ilham kaynağı olan Common Lisp ile ilgili çalışmalara başlamak isteyenlerin ilk ihtiyacı olan şey güçlü bir geliştirme ortamı ve sıra bunu anlatmaya geldi!

Bu belgede GNU/Linux sisteminiz üzerine tam teşekküllü, güçlü bir Common Lisp geliştirme ortamı kurmanız ve ilk Common Lisp denemenizi yapıp test etmeniz için gerekenler anlatılacaktır.

Common Lisp'e en iyi destek veren GNU/Linux dağıtımlarından biri olan Debian GNU/Linux esas alınmıştır ancak burada yazılanların hepsini herhangi bir GNU/Linux ya da UNIX uyumlu bir sisteme kurmak mümkündür.

Temel Bileşenlerin Kurulumu

Common Lisp programlarını düzenlemek için kullanabileceğiniz en güçlü editör Emacs'tır. GNU/Linux üzerinde en yaygın kullanılan Emacs olan GNU Emacs'ın bilgisayarınızda kurulu olup olmadığını test etmekle işe başlayalım. Komut satırında aşağıdaki komutu verdiğinizde:

$ emacs --version

Şuna benzer bir çıktı alıyorsanız sisteminizde GNU Emacs yüklü demektir:
GNU Emacs 21.3.1
Copyright (C) 2002 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
Tabii son sürüm Emacs kullanıyor olmanız şart değil, dolayısı ile sürüm numarası olarak 20.li bir sayı görürseniz özel bir şey yapmanıza gerek yok. Ancak eğer sisteminizde Emacs kurulu değilse ya da son sürümü istiyorsanız, root yetkilerine sahip olduktan sonra:

Yok eğer XEmacs tercih ediyor ve halihazırda XEmacs kullanıyorsanız benim bir şey dememe gerek yok zaten. Bu belgeyi yazarken Emacs ailesine ilk kez merhaba diyecek olan kişiler göz önünde bulundurulmuştur.

# apt-get install emacs21

(ya da komut satırı yerine Synaptic gibi bir grafik arayüz kullanarak) diyerek Emacs editörünün son sürümünü yükleyebilirsiniz.

Common Lisp (ve başka pek çok dilde) programlarken eliniz ayağınız olacak GNU Emacs editörünü sisteminize kurduktan sonra artık doğrudan Lisp'e yönelik paketlerin kurulumuna geçebiliriz:

# apt-get install cl-clx-sbcl Common Lisp ile X Window sistemi arasında bir tür köprü görevi gören bu paket kurulduktan hemen sonra size iki soru soracaktır. Kısa Lisp site ismi ve uzun Lisp site ismi. Şimdilik bunların bizim için önemi yok. Bunlara sisteminizi ve Lisp'i çağrıştıracak kısa birer isim yazıp geçebilirsiniz. Ardından Lisp'in diğer dillerle iletişim kurmasını sağlayacak olan "Universal Foreign Function Interface" paketini kuralım:

# apt-get install cl-uffi

Şimdi sıra geldi Common Lisp sistemimizin en büyük bileşenini yani Lisp derleyicisini kurmaya. Pek çok farklı Lisp derleyicisi var ve şimdilik bizim tercihimiz Steel Bank Common Lisp:

# apt-get install sbcl

Internet'ten kurulum yaptığınızı varsayarsak yukarıdaki komutun Lisp derleyicisini çekip sisteminize kurması birkaç dakika sürecektir.

Bu işlemden sonra Common Lisp ile karmaşık ve sofistike grafik uygulamalar geliştirmenize olanak sağlayan McCLIM paketini, örneklerini ve belgelerini kuracağız:

# apt-get install cl-mcclim cl-mcclim-doc cl-mcclim-examples Ve temel bileşenler listesinin bu aşamasında metin işleme konularında bize yardımcı olacak RegExp yani Düzenli İfadeler ile ilgili Lisp paketini yükleyelim:

# apt-get install cl-ppcre

Lisp Dokümantasyanu: Hyperspec ve CLTL2

Sağlam bir başvuru kaynağı olmadan, ciddi bir referans olmadan bir dile tamamiyle hakim olmak mümkün değildir. Bu kaynak içinde ne kadar çok çapraz bağlantı taşıyorsa o kadar iyidir. Kaynak ne kadar güzel örnekler sunuyor ve derinlemesine dili tarif ediyor, dolayısı ile tanımlıyorsa sizin işinize o kadar çok yarar.

Common Lisp için en önemli iki kaynak Hyperspec ve CLTL2 isimli belgelerdir. "Common Lisp The Language, 2nd edition" Lisp'e dair bulabileceğiniz en detaylı ve hacimli eser olup açık olarak Internet'te kamuya sunulmuştur. Hem Hyperspec referansına hem de CLTL2'ye Internet erişmeniz mümkündür ancak bunların bilgisayarınızda durmasının bir sakıncası yoktur, böylece gereksiz yere bantgenişliğimizden de çalmamış oluruz Lisp çalışırken:

# apt-get install cltl
# apt-get install hyperspec

Bu aşamada Debian kullanıcıları biraz şaşırabilir çünkü Debian paketi gibi görünen cltl ve hyperspec aslında Debian yazılım deposunda değil farklı bir yerde barındırılmaktadır dolayısı ile sisteminiz size bu kaynakları Internet çekmeyi isteyip istemediğinizi sorduğunda şaşırmayın. Evet deyerek devam edin. Birkaç dakika içinde Lisp ile ilgili en önemli iki kaynak bilgisayarınıza uygun şekilde kurulmuş olacaktır.

SLIME: Superior Lisp Interaction Mode for Emacs

Sıra geldi Emacs ile Lisp derleyicimiz/yorumlayıcımız SBCL arasında iletişim kuracak olan SLIME'ı kurmaya. SLIME ile Emacs'ın gücüne güç katmış olacaksınız Lisp programlama bağlamında. Tam teşekküllü bir Common Lisp IDE (Integrated Development Environment) sistemine sahip olmaya bir adım daha yaklaşmak için SLIME'ı resmi web sitesinden tar.gz dosyası olarak çekebileceğiniz gibi eğer son sürüm kullanmayı sevenlerdenseniz SLIME geliştiricilerinin en son sundukları paketi CVS'ten çekebilirsiniz kolayca. Bu arada, artık apt-get ile işimiz kalmadığı için root kullanıcısı olmaktan çıkabilir ve normal kullanıcı olarak devam edebilirsiniz. Tavsiyem kendi ev dizininizde olmanız, yani /home/kullanici-ismi dizini:

$ export CVSROOT=:pserver:anonymous@common-lisp.net:/project/slime/cvsroot

komutu ile hangi CVS sunucusuna bağlanacağımızı belirtiyoruz ve ardından:

$ cvs login her şey yolunda gitti ise SLIME CVS sunucusu bize parola soracaktır. Parola: anonymous ancak eğer herhangi bir hata mesajı verirse tekrar deneyin ve ne yazdığınıza dikkat edin. Büyük ihtimalle ikinci denemede (eğer CVS sunucusunda bir sorun ya da yavaşlık yoksa) login işlemi gerçekleşir ve sistem size hiçbir mesaj vermeden sizi tekrar komut satırına döndürür. Artık SLIME'ın son sürümünü CVS üzerinden çekmeye hazırsınız:

$ cvs checkout slime

Kısa süre içinde ekranda dosya ve dizin isimleri kaymaya başlar ve ev dizininize slime dizini oluşturulur, gerekli dosyalar buraya yerleştirilir CVS tarafından. Eğer CVS ile problem yaşarsanız üzülmeyin, yukarıda da belirttiğim gibi her zaman için .tar.gz formatındaki dosyayı çekip açmak sureti ile kullanabilirsiniz.

SLIME'ı çektikten sonra yapmamız gereken küçük bir iki ayarlama kaldı. Eğer daha önce hiç kullanmadıysanız tüm zamanların en güçlü editörlerinden birini kullanmak için iyi bir fırsat! Ev dizininize geçmiştiniz değil mi? Öyleyse:

emacs .emacs yani .emacs isimli kişisel konfigürasyon dosyamızı Emacs editörünü kullanarak düzenleyeceğiz. Emacs karşınıza boş bir .emacs dosyası ile geldiğinde lütfen aşağıdaki satırları yazın:

(setq inferior-lisp-program "/usr/bin/sbcl")
(add-to-list 'load-path "/home/kullanici-ismi/slime")
(require 'slime)
(slime-setup)


kullanıcı-ismi yerine kendi kullanıcı isminizi yani login olurken, sisteme giriş yaparken kullandığınız ismi yazmayı ihmal etmeyin!

Şimdi .emacs dosyası içine bir şey yazdığımıza göre bunu kaydetmekte fayda var. Bunun için C-x C-s tuş kombinasyonunu kullanacaksınız. Yani bir eliniz Ctrl tuşuna basılı iken önce x tuşuna ve eliniz yine Ctrl'yi basılı tutuyorken s tuşuna basacaksınız. Emacs editörün en alt bölümündeki bilgi alanında size .emacs isimli dosyayı kaydettiğini söyleyecek.

Bir programa girmek kadar ondan düzgün şekilde çıkmasını bilmek de önemlidir. Emacs'tan çıkmak için C-x C-c tuş kombinasyonunu kullanmanız yeterli.

Emacs'tan çıktık ve şimdi tekrar girmemiz gerekiyor ancak bu sefer herhangi bir dosyayı düzenlemeyeceksiniz. Sadece Emacs'ı çalıştırmakla yetineceksiniz:

$ emacs Emacs karşımıza gelince artık SLIME'ı devreye sokmaya hazırız demektir:

M-x slime

Yukarıdaki ifadenin anlamı şudur: Emacs söz konusu olduğunda M- ile başlayan ifadeler, söz gelimi M-x ALT tuşu ile aynı anda basılacak tuşları gösterir, yani misal eliniz ALT tuşunda iken x tuşuna basacaksınız ve Emacs'in en alt bölümündeki bilgi satırına dikkat edeceksiniz, M-x yazdığını ve sizden bir şeyler yazmanızı beklediğini göreceksiniz ve şimdi slime yazıp ENTER bastığınızda Emacs içinde bazı dosya isimlerinin akıp gittiğini, arada "... compiling ..." gibi mesajlar verdiğini göreceksiniz. Aklınızda bulunsun eğer C- ya da M- şeklindeki Emacs kombinasyonlarında kafanız karışır yanlışlıkla bir şeylere yol açıp Emacs'i şikayet ederken ya da kafa karıştırıcı bazı şeyler sorarken bulursanız tek yapmanız gereken: C-g yani CTRL ve g tuşlarına basmak, bu içinde bulunduğunuz Emacs komutu durumundan sizi çıkaracaktır, sonra istediğiniz tuş kombinasyonunu tekrar deneyebilirsiniza. Eğer .emacs kişisel konfigürasyon dosyanızı düzenlerken ya da yukarıdaki SBCL paketini kurarken bir hata yapmadıysanız (oluşmadıysa) bir müddet Emacs'ın içinden SLIME dosyalarının, yani birtakım Lisp dosyalarının derlendiğini göreceksiniz. Bir süre işlem bitecek ve SLIME, Emacs ile entegre olarak çalışmaya hazır hale gelecektir.

Şimdi tekrar Emacs'tan çıkalım. Birkaç paragraf yukarı bakarsanız Emacs'tan hangi tuş kombinasyonu ile çıkılacağını hatırlarsınız.

İlk Common Lisp Programımızı Yazmaya Başlıyoruz

Artık ilk Lisp dosyamızı oluşturup ilk Lisp programlama denemelerimizi yapabiliriz. Bunun için komut satırından Emacs'a .lisp uzantılı bir dosyayı düzenlemek istediğimizi söylemek yeterli:

emacs ilk.lisp

Şu anda Emacs penceresi size boş bir ilk.lisp dosyasının içini gösteriyor olmalı. Örnek bir Lisp programını yazmadan önce lütfen Emacs'in üst kısmındaki ana menüdeki Options menüsüne gidin (pekala, tamam, şimdi fare kullanabilirsiniz ;-) ve o menüden aşağıdaki menü maddelerini fare ile tıklamak sureti ile işaretleyin sırayla:

Syntax Highlighting
Active Region Highlighting
Paren Match Highlighting


Save Option


Ve tabii slime'ı devreye sokmak için M-x slime yapmayı ihmal etmiyoruz. Merak etmeyin, slime'ın devreye girmesi yukarıdaki gibi uzun sürmeyecek, o bir kereliğine olan bir şeydi, slime artık derlenmiş olduğu için anında karşınıza gelecek. Tabii bu sizi şaşırtabilir çünkü SLIME devreye girdiğinde bir anda Emacs'in görünen kısmını ele geçirecek ve siz de belki "e ama benim ilk.lisp dosyam nereye gitti, ben onu açmıştım az önce onun içine bir şeyler yazıp deneme yapacaktım" diyeceksiniz. Dosyanız bir yere gitmedi, Emacs'taki "buffer"lardan birinde duruyor. Yukarıdaki "Buffer" menüsünü kullanarak ya da daha kolayı C-x b basarak (DİKKAT! CTRL ile aynı anda x basın ve sonra elinizi klavyeden çekip b basın) ve ardından ENTER basarak ilk.lisp dosyanızı düzenlemeye başlayabilirsiniz.

ilk.lisp dosyasının içine şu iki satırı yazın:

(defvar *global-degisken*)
(setf *global-degisken* (+ 1 2))


Dosyayı kaydedin (nasıl yapacağınızı hatırlamak için birkaç paragraf yukarı bakın).

İlk Lisp programınızı derleyip test etmeye hazır mısınız? O halde C-x C-k tuş kombinasyonunu basın sıra ile. Yukarıdaki SLIME menüsüne bakacak olursanız bunun "Load and Compile File" işlemine karşılık geldiğini görürsünüz. Eğer her şey yolunda gitti ise Emacs penceresi ikiye bölünecektir, yukarıda dosyanız, aşağıda ise Lisp REPL (Read Evaluate Print Loop) ortamı. Alttaki bölümde dosyanızın hatasız derlendiğine dair bir mesaj alırsınız ve Lisp sizi

CL-USER>

yazısı ile bekler. Bir nevi Lisp komut satırı gibi düşünebilirsiniz. Programı test etmeniz için tek yapmaniz gereken CL-USER satırında *global-degisken* yazıp ENTER basmak, bir satır aşağıda 3 cevabını alıp tekrar Lisp komut satırına döndüyseniz her şey yolunda demektir. Eğer ikiye bölünmüş pencereler arasında geçiş yapmak isterseniz yani CL-USER'da iken bir üste çıkmak Lisp programınızı düzenlemeye devam etmek ya da Lisp programınızı düzenlerken Lisp komut satırının olduğu diğer pencereye inmek isterseniz pencereler arası geçiş tuş kombinasyonunu kullanabilirsiniz: C-x o

Artık Emacs ile nasıl bir Lisp dosyası oluşturabileceğinizi, SLIME'ı nasıl devreye sokacağınızı ve dosyanızın içine Lisp programları yazdıktan sonra nasıl derleyip test edebileceğinizi biliyorsunuz. Tebrikler!

Aşağıda gördüğünüz FLASH video, ne tür şeylerle karşı karşıya olduğunuza dair kabaca bir fikir vermesi için, deneyimli Lisp programcılarından ve FM üyelerinden BM tarafından hazırlanmıştır. Ackerman fonksiyonu ile oynarken Emacs'ın tuş kombinasyonlarından faydalanıp Lisp'e özgü bazı kıvrak şeyleri nasıl yaptığına (tek harekette imlecin bulunduğu yerden sonra gelen s-ifadesinin [s-expression] silinmesi gibi) dikkat edin. Emacs'ın otomatik parantez tamamlama, hizalama, vs. gibi özellikleri de ilginizi çekebilir. Lisp sözdizimi ile birleştiğinde bu editörün gücünü süreç içinde daha iyi anlayacaksınız. Tabii önemli olan gördüğünüz kodu anlamanızdan ziyade genel bir izlenime sahip olmanız.

Büyük Görüntülemek için tıklayın !


Emacs ile ilgili en temel bilgileri edinmek için yine Emacs'tan faydalanabilirsiniz, C-h t ile Emacs öğreticisi devreye girer ve size Emacs'ı uygulamalı olarak anlatır. Bu güçlü editörün sadece çok çok basit birkaç temel özelliğine ve kullanım şekline değindik şimdiye kadar. Emacs'a alıştıktan sonra editörün içinden çıkmadan Linux komut satırına erişmeniz, CVS ile kaynak kod kontrol depolarına bağlanıp diğer yazılımcılarla ortaklaşa ve kontrollü yazılım geliştirmeniz, e-posta yazıp okumanız, USENET haber gruplarını takip etmeniz, oyun oynamanız, doktora tezinizi yazmanız, müzik dinlemeniz ve bahçedeki bitkileri sulamanız mümkün.

Peki ya Lisp? Bu yazının amacı başlığından da anlaşılabileceği gibi Lisp öğretmek değil, Lisp öğrenmeye başlamanız için gerekli entegre yazılım geliştirme ortamını kurmanız için size yardımcı olmak. Lisp ile ilgili öğretici belgelerle yakında karşınıza çıkacağız, bizi izlemeye devam edin ;-)

2005-01-06
Emre "FZ" Sevinç
fz at ileriseviye.org

Bu kılavuzun orjinal adresi: ileriseviye.org sitesindedir.

*: Daha önce yayınlanmış ve Lisp ile ilgili FM yazıları:

Sıradışılıkla Kazanmak - Bir Common Lisp Başarı Öyküsü
Kent Pitman Lisp ve ötesi ile ilgili soruları yanıtladı - Bölüm 1
http://www.fazlamesai.net/modules.php?name=News&file=article&sid=2330
Mars Kurtarma Görevi Programlama Yarışması

Burada anlatılanları ve çok daha fazlasını görmek, deneyimli bir Lisp programıcısını SLIME'da kıvrak iş yaparken izlemek için lütfen aşağıdaki adreslerde belirtilmiş videoyu çekip izleyin:

http://common-lisp.net/movies/slime.torrent

http://common-lisp.net/movies/slime.mov

Görüşler

0
bm
Bu Flash anmasyonu isinize yariyorsa daha duzgununu anlasilirini filan da yapatiz. Su anda vaktim yok, ama ses cikartirsaniz vaktim oldugu zaman yaparim.
0
Teorisyen
Elinize, kolunuza, beyninize sağlık..
0
malkocoglu_2
Animasyon harika olmus. Elinize saglik.
0
bm
Evet ben emacs kullanmaya baslarken doganlar neredeyse oy everecek ama hala ustumde kamera olunca elim ayagima dolasiyor gordugunuz gibi. (ama biz onu millet C-g yi ogrensin diye oyle birktik tabi. hersey planli yani. yaa)

Bu tip belgelerden Common Lisp ogrenmeye niyetli arkadaslar ekran buyukluklerini yazabilirlerse ilerki animasyonlari da ona gore yapariz. 800x600 cok kucuk kaliyor, iki tane en az 80 sutunluk pencere yan yana olursa normal bir emacs+cl calisma ortami gosterilebilir. Bunun icin de makul fontlarla 1280x1024 lazim. Normal ekran kullananlardan sIkIntimiz olmaz da, malesef memlekete yuksek cozulurlukte akrani olan laptop makul fiyatla gelmiyor. Bunlari okumayi planlayanlar bir iki yorum yazarlarsa ona gore ayagimizi denk aliriz.
0
malkocoglu_2
Uretmek, ortaya bir sey koymak en guzeli. Tabii hersey daha iyi olabilir. Devamini dilerim.

Tekrar elinize saglik.
0
tongucyumruk
Hmm... Bu yazıyı okumadan önce kendi çapımda bir LISP ortamı kurmuştum aynı şekilde sbcl, emacs, mcclim vs... kullanarak. Fakat SLIME yerine Debian'da hazır paketi bulunan ilisp'i tercih etmiştim. Acaba bu ikisi arasında ne gibi farklar olduğunu, ilisp yerine SLIME kullanmanın getireceği avantajlar/dezavantajlarını açıklayabilecek biri var mı?

Not: Bu arada uzun zamandır emacs'ta alt ve üst buffer'lar arasında geçiş yapmaya yarayan tuş kombinasyonunu arıyordum. Sayenizde öğrenmiş oldum.
0
bm
Once C-h b ile icinde oldugunuz bufferda gecerli key bindingleri ogrenebileceginizi soyleyeyim. Bir suru hosluk ogrenilebiliyor onunla. Menuleri ve toolbari sakliyorsaniz ozellikle faydali olacaktir bu.

Ilisp'i artik pek kimse kullanmiyor. Herkes slime'a yoneldi. Debian paketi yok cunku henuz gelitiriciler sicak bakmiyorlar paketlenmesine. 1.0 tgz'si veya CVS'ten cektiginizin kolayca calisiyor olmasi lazim.

Slime (webden tarihini de ogrenebilirsiniz) Franz'in allegro icin gelistirdigi eli'den turetilme. Hem lisp tarafinda hem emacs trafinda kod calistirarak icabinda lispi bir yerde emacsi baska yerde calistirmaya da imkan veren bir temel uzerinden insa oluyor. Yani icabinda sunucunuzun uzerindeki lisp'e kendi makinenizin uzerindeki emacsten baglanip istediginizi yapabiliyorsunuz. (denemeyin, su anda calisiyor mu bilmiyorum ama gidis/amac o). Ilisp comint-mode'a bagli biraz daha ayaga kalkmasi kolay bir cozumdu zamaninda. Gelistiricisi kaldi mi bilmiyorum ama artik hevesliler ve calisanlar slime'da. Yani baslayacaksaniz ilisple degil slime'la baslayin. (Alistiginiz birsey varsa zaten beni dinlemezsiniz.)
0
FZ
Emacs için çok güzel bir mini referans mevcut:

http://www.slackworks.com/~tranis/emacs-refcard-a4.pdf

Bunun çıktısını alıp, sonra kesip zımbalarsanız elinizin altında, cebinizde falan bulunur ve hayat kurtarır ;-)

"Emacs cheat sheet" örneği olarak da mesela şuraya bakabilirsiniz:

http://www.cs.princeton.edu/~hains/os/emacs.html
0
bm
Sunu da deneyebilirsiniz. C-h b ile aldiginiz listeyi (ozellikle slime ile iliskili bir common-lisp-mode'u kullanan bir bufferin icinde) biraz degistirip 6pt veye 4pt ile enscriptle basabilirsiniz. (bunu emacs ile yapabilmeniz icin mark/point kavramlarini ve kill/yank vs. ogrenmaniz lazim. Bunlar tutorial'da var. C-h t) Bunlarin basildigi kagidi kesip tam ekranin kenarina oturacak boya getirmek mumkun olabiliyor CRT'ler icin.

Emacs biraz zaman yatirimi gerektirir, ama ozellkle common lisp ile ilgilenecekseniz su anda (kimseye git Open Genera al diyemeyecegimize gore) tek makul cozumunuz. Hmm Open Genera aldirsak bile o zaman da Zmacs ogrenmeniz lazim. Yani emacs iyidir.
0
FZ
Lisp denemelerinden sonra yorgun düşüp Emacs ile biraz dertleşmek isterseniz:

M-x doctor

Emacs psikiyatristinden canınız sıkılırsa ve bu "buffer"ı kapatmak isterseniz:

C-x k ve ardından ENTER

Bu arada motivasyona dair güzel bir makale okumak isterseniz:

C-h C-n

ardından

C-x C-f

basıp MOTIVATION yazın ve ENTER basın. ;-)
0
FZ
Pardon! C-h C-n değil C-h n olacak.
0
malkocoglu_2
Hey. Emacs icinden Tetris bile oynayabilirsiniz.

M-x tetris



0
FZ
Ve tabii komut satırına da erişebilirsiniz:

M-x eshell

(M-x shell de mümkün ama eshell daha gelişmiş özellikler sunuyor, ANSI Escape renk kodlarını doğru yorumlama gibi...).
0
roktas
Aman Allahım Emacs'cılar basmış burayı, dostlar yetişin :-O
Yazı çok güzel, canlandırmalar harika... Ellerinize sağlık!
0
sametc
hocam sadece emacs'cılarmı baksanıza lispcciler :((( vvahvvah gitti C python gitti :((
0
FZ
Yok C bir yere gitmedi, Python da bir yere gitmedi. Baksanıza FM'nin son anketinde her iki dil de pek çok kişinin yeni öğreneceği diller kategorisinde ;-)

Öte yandan bir programcının dediği gibi, "yüksek seviyeli programlama ile uğraşan herkes bir gün öyle ya da böyle Lisp'i icad eder" ;-)
0
bm
Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp."

http://philip.greenspun.com/

Tercume edemedim, iyi mi? ad-hoc'a rastgele demek istiyorum tam olmuyor, informally-specified'a ne diyecegimi bilemedim. Birisi bir el atsin lutfen.
0
roktas
ad-hoc --> derme çatma
informally-specified --> gayr-ı resmî (veya resmî olmayan) belirtimlere (spesifikasyonlara) sahip

Aşağıdaki çeviri çok iyi olmadı. Üzerinde biraz daha çalışmak lâzım:

Yeterince karmaşık herhangi bir C veya Fortran programı derme çatma, hatalı, yavaş, gayr-ı resmî belirtimlere (spesifikasyonlara) sahip bir Common Lisp gerçeklemesinin yarısını içerir.
0
FZ
"gerçekleme" kısmı hariç fena değil bence. Ama işte şu "implementation" lafına doğru dürüst bir Türkçe karşılık bulamadık gitti. Ya da var ama ben bilmiyorum ya da belki "gerçekleme"ye alışmadığım için bana tuhaf geliyor...
0
sundance
Bence anlamını büyük ölçüde karşılayan kelime "uygulama".

http://dictionary.reference.com/search?q=implementation
1. A tool or instrument used in doing work: a gardening implement. See Synonyms at tool.
2. An article used to outfit or equip.
3. A means of achieving an end; an instrument or agent.

http://dictionary.reference.com/search?q=application

Şimdi aplication'ın karşılığı uygulama diyenler çıkacak, ama zaten o ikisi çok yakın anlamlı

http://thesaurus.reference.com/search?q=implement

Bizim kullandığımız anlamdan implement'in eşanlamlısı direkt appliance yazıyor.

Mesela garderning implement yerine gardening appliance diyebiliriz. Ya da Network Appliance ;)

Gerçekleme ise daha çok actualization ve hatta realization ki bence applicationdan çok çok daha uzak bir anlamı var.

http://dictionary.reference.com/search?q=application
0
FZ
Algoritmik Karmaşıklık Teorisinin kurucularından biri olan Chaitin'e göre "Lisp aslında küme teorisidir ve tüm matematikçiler küme teorisini sever". ;-)

Tabii burada vurgulanan Lisp'in pratik kullanımı değil de dilin soyut güzelliği ve şıklığı. Maalesef bu nokta pek çok kişi tarafından Lisp'in pratik uygulamalar geliştirmek için pratik olarak kullanılamayacağına dair sunulan argümanlarda vurgulanan noktalardan biri, tabii yanlış olarak.

Common Lisp'in gücünü bir nebze hissetmek isteyenler aşağıdaki kitaba bakabilir:

http://www.gigamonkeys.com/book/

Kitabın yazarı aynı zamanda sağlam bir Java programcısı ve başka dillerle de çalışmış biri.
0
lifesdkver0_1
şimdi bu alıntı ciddi olarak mı söylenmiş mi kestiremedim ama biri çıksa da tüm dillerin bir şekilde lisp'e "converge" edeceğini matematiksel olarak ispatlasa? var mı buna benzer bir şey?
0
bm
Boyle bir ispat anlasilan manada olamaz. Butun dillerin ancak Turing makineleri kadar guclu oldugu bazi makul (teorisyenler icin makul) sartlar altinda zaten gosterilebiliyor. Bunun efektif olarak hesaplanabilen tum fonksyonlar icin 'yeterli' oldugu Church-Turing tezi diye bilinen tez. Lispte o bakimdan bir extra guc yok.

Lispin devreye giris sekli belki lambda caclulus (y combinatorli) yoluyla olabilir ama onda da ek bir guc yok. Common Lisp, Scheme vs. tabi lambda calculusu dogrudan ifade edebiliyor, o bakimdan teorik arka plani kuvvetli kisilere cekici gelmeleri normal.

Bu konularda (teorik bilgisayar bilimi) Turkce dokuman var mi? En azindan el yordamiyla karmasiklik (complexity) konularinin bir kismina hakim olarak mi mezun oluyor ogrenciler? (bunun pratik faydasi da var, ilginc proje ile yapilmasi mumkun olmayan projenin farkini anlayip rezil olmaktan kurtariyor insanlari mesela) Matematige yatkin insanlari cekecek cok ilginc sonuclar var aslinda orada, FM'nin teorisyenligi benden kuvvetli olan okurlari belki kisa ve carpici bir seyler yazmak isterler? ("Durma problemi" diye bir iki aradim, birseyler cikti ama acik ispat gormedim.)
0
malkocoglu_2
Ustte soylenenler guzel (her ne kadar azicik hamasi (!) olsa da) ve LISP'in şık oldugunu belirten sozler. Fakat Turing Makinasinda kabul edilebilecek dile indirgenebilen tum diller birbirine esittir. Tum populer diller de Turing makinasina indirgenebilirler.

http://www.bilgidata.com/yazi.jsp?dosya=a_algoritma_yuku_1.xml

0
FZ
Kılavuzun sonunda FM'de daha önce çıkmış birkaç Lisp makalesinin adresi var. Bunlardan bir tanesi "Bir Common Lisp Başarı Öyküsü". Bu makalenin sonundaki 3. notta Paul Graham şöyle demiş:

"Bütün diller Turing'in "Turing makinası" kavramına indirgenebildiği için aslında eşit güçte oldukları söylenebilir. Osya bu programcılar için bir kıstas değildir çünkü hiç kimse bir Turing makinesi programlamak istemez. Programcıların güç olarak ifade ettiği şey aslında biçimsel olarak tanımlanabilecek bir şey değildir, ama bunu açıklamanın bir yolu şu olabilir: Bir dilde kullandığınız özellikleri diğer dile ancak ilk dil için bir yorumlayıcı yazarak aktarabiliyorsanız bu ilk dil daha güçlüdür. Yani A dili karakter dizilerindeki boşlukları yok edebilen bir operatöre sahip ve B değilse bu A dilini B dilinden daha güçlü yapmaz çünkü bu açığı kapatmak için bir alt program yazabilirsiniz fakat A özyinelemeyi destekliyor ve B desteklemiyorsa bu bir kütüphane fonksiyonu yazarak kapatabileceğiniz bir eksiklik değildir."

Güzel ve açık bir anlatım olduğunu düşündüğüm için alıntılamak istedim. Lisp kullanarak iş güç yapmış, ticari sistemler geliştirmiş, para kazanmış ve ABD gibi bir ortamda rekabet etmiş bir yazılım ustasının sözleri olmasının da önemsiz olmadığını düşünenlerdenim.

Bu arada bir yanlış anlama olmasın, hiç kimse algoritmik karmaşıklık ölçüsü belli olan bir problem çözümünün filanca dilde falanca dile kıyasla daha hızlı olacağını iddia etmiyor, en azından ben iddia etmiyorum. Chaitin'in de benzeri bir düşüncesi olduğunu zannetmem ancak üstada şu bakımdan katılıyorum: Keşke ben matematik bölümünde okurken bana Lisp gösterselerdi! Dilin şıklığı ve sadeliği öyle bir durumda çok daha rahat kendini belli edebiliyor. Misal, Abelson ve Sussman'ın MIT'de verdikleri bir derste Peano aksiyomlarından yola çıkarak "diyelim ki dilimizde toplama işlemi olmasın, bunu nasıl tanımlarız, haydi bakalım" deyip birkaç harekette matematiksel yapıyı bilgisayar ortamında ifade etmeleri... Gerçekten de "güzel"di!
0
malkocoglu_2
||Osya bu programcılar için bir kıstas değildir
||çünkü hiç kimse bir Turing makinesi programlamak
||istemez.

O zaman dedigimi soyle degistireyim: Elimizdeki mevcut matematiksel silahlarla, dil XYZ'nin kullanim rahatligi/basitliginde son (ultimate) nokta oldugunu ispatlayamayiz. Elimizdeki tek yontem, dillerin esit islevsellikte oldugunu soyluyor, ama dediginiz gibi bu yontem kullanim rahatligi/esnekligi/tanimsal gucten bahsetmiyor.

Eger spekulasyon yapmam gerekirse, elimizde su anda olmayan ama bir gun insallah bulunacak bu tur bir ispat/teori, ancak ruhbilimden gelebilecek bulgularla desteklenirse yere saglam basabilir. Boyle bir ispatin olmamasi yuzunden zaten bu konuda cok tartisma olmaktadir, bilimsel taban saglam olmadigi icin "kisisel gorusler" on plana cikar. "Benim tecrubeme" karsi "onun tecrubesi" vs "piyasa ne karar vermis", vs "falanca ne demis". Ben IT'ci olarak, piyasa havasini koklarim, "sürünün" ne yapacagını anlamaya ugrasirim, surunun begenecegi muhtemel gelecek "buzz teknoloji" icinden kotulerin en iyisi secip, kendi capimda onun icin lobi de yaparim.

Insallah bahsettigim sekilde bir ispat ortaya cikar da, artik "hangi dil" tartismasi yapilmaz., ve biz kariyer icin dil secmek ve ogrenmek ile mesul kisiler de rahat eder.

:)

0
bm
Ben IT'ci olarak, piyasa havasini koklarim, "sürünün" ne yapacagını anlamaya ugrasirim, surunun begenecegi muhtemel gelecek "buzz teknoloji" icinden kotulerin en iyisi secip, kendi capimda onun icin lobi de yaparim.

O kadar iyi bir iyi orta var ki, topa dokunmasam yazik olurdu:
Ben de bir CS'ci olarak IT'cilerin ne yaptigina ne kokladigina onem vermem lisp kullanirim!

Yukarki aciklama gayet akli basinda tabi. Ticari kaygilarla hareket etmek eger bu isten ekmek yeniyorsa en dogrusu. Yanliz isin cinsine gore hangi dilin ITciler arasinda moda oldugu onemsiz olabiliyor. Graham sadece bir ornek, biraz sansli veya inatciysaniz (ozellikle disarida) istediginiz dili kullanabileceginiz projelerden de ekmek yenebiliyor. Eger dogru secim yaptiysaniz bu seciminizden dolayi baskalarinin ekmek yedigi isten sizin pasta yemeniz de mumkun. Turkiye icin bu buyuk ihtimalle Graham tipi kendi isiniz icin yaptiginiz seylerde daha cok soz konusu herhalde, yine de mumkun olsa gerek.
0
malkocoglu_2
Muhakkak. Boyle projelerin olmasi cok guzel. IT dunyasinda boyle luksumuz olmasini isterdim. IT deki insanlar, ki sistem birlestirici demek belki daha dogru olur, kullandigi yan kutuphaneler, uygulama servislerinden tutun, mesaj kuyruklari (message queues) ve hatta egitimin uniform olabilmesi amaclari icin bu sekilde hareket etmek zorunda kaliyor. Bu baglamda, "eger/keske" lerin hicbir fark getirecegini zannetmiyorum. Java bugunku haline gelecekti, ve gelmistir. Fakat derim ki sürü (cogunluk) yavas ta olsa dogruya dogru ilerler, fakat bunu "kendi takvimlerinde" yapar. Mesela nihayet cop toplayicilar artik "cehennemden gelen zebaniler" olarak gorulmuyor, kabul edilir seyler oldular. Cop toplayici ortada hep vardi, fakat genelin kabul edecegi bir sekilde paketlenmesi gerekiyordu, tabii bir de, islemci hizlarinin belli bir seviyeye gelmesi.

0
sametc
boyle makaleler insanı kışkırtan yazılar ve boyle adamların ilginc hikayelerini okuyanlar eminimki "bende yapıcam anasını satayım" diyordur mutlaka ;)

merak etmeyin paul graham'ın fikirleri aklımızda ;)

son söz "şirketleri ayakta tutan icraat degil FİKİRLERDİR"
0
bm
Bu arada bu kadar emacs ve Common Lisp reklamindan sonra 'iyi de bana bunu ogrenecek proje lazim' diyenler icin CLIM+Common Lisp ile yazilmakta olan climacs'in sayfasindaki proje listesine bakmalarini tavsiye ederim. Bence bunlardan iyi bitirme projeleri (lisans icin) yahut OO projeleri cikabilir. CLIM de Common Lisp de buyuk ihtimalle okulda ogretilen seylere pek benzemedigi icin ufkunuz da acilir.

http://common-lisp.net/project/climacs/

0
FZ
http://www.onlamp.com/pub/wlg/6162
0
Arkantos
Süper bir yazı olmuş ! Henüz hepsini okuyamamış olsam da Tebrikler :) Bu arada ne bu böyle gerçekten siteyi Emacsçılar basmış :) Ben de Emacs Lisp ile yazılmış CEDET projesinin adresini vereyim. Henüz geliştirme aşamasında ben de çok az kullanmama rağmen çok kullanışlı buldum:
http://cedet.sourceforge.net/semantic.shtml
0
FZ
Teşekkürler!

Bu arada cedet linkindeki şu ekran görüntüsü gören insanlar artık herhalde Emacs mı IDE mi, vs. diye sormaktan vazgeçerler, evet Emacs, evet editör, evet IDE, evet lavabo açacağı da olabilir aynı zamanda:

http://cedet.sourceforge.net/inlinecompletion.png

Yukarıdaki görüntüdeki renk dağılımı ve fontlar da çok hoşuma gitti!

SpeedBar görüntüleri de güzelmiş:

http://cedet.sourceforge.net/speedbar-multi-2.jpg

Görülen o ki bu eleman da benim gibi koyu renk arkaplan üzerine yazmayı sevenlerden (fakat nedense karşılaştığım insanlar bunun yorucu olduğunu söylüyor, ben ise bembeyaz, parlak arkaplan üzerine siyah yazmayı çok daha yorucu buluyorum genellikle).


0
Arkantos
Evet ben de koyu renk arkaplan üzerine yazmayı sevenlerdenim. Emacs dosyası çalıntı ama :)

http://www.oyunprogramlama.net/resim/ekran2.png
0
FZ
Güzel bir örnek!

Örnekten anladigim kadari ile kompleks sayılarla işlem yapmak falan söz konusu.

Bu bağlamda Lisp'in doğrudan kompleks sayılara destek verdiğini hatırlamak güzel bir şey tabii:

http://www.supelec.fr/docs/cltl/clm/node20.html#SECTION00614000000000000000

Ve bununla yetinmeyip devreye "principal value, branch cut", vb. kavramları da yine dile içkin olarak sokması benim gibi matematik (mühendisliği) okumuş insanların indinde dile ayrı bir güzellik katıyor:

http://www.supelec.fr/docs/cltl/clm/node129.html#SECTION001653000000000000000

Aynı dille hem böyle varyeteler yapılabildiğini hem de işte e-ticaret, vs. gibi pratik uygulamalar yapılabildiğini bilmek garip bir duygu ;-)

Matematik bölümünde ilk programlama dili olarak Lisp göstermemeleri çok kötü derken kast ettiğim işte böyle bir şey.
0
sundance
Süper yazı eline sağlık.

Yalnız Emacs konusunda bir iki söylenti duydum, öncelikle emacs kullananların sol el yüzük parmaklarında ciddi deformasyonlar olduğu (sözkonusu parmak on parmak yazarken x harfini basmak için kullanılır ;) ve başta RMS olmak üzere bütün emacs projesinde çalışanların dünyanın önde gelen klavye üretim firmalarında hisseleri olduğu (x tuşu çok basılmaktan bozuluyor ya) alenen söylenir olmuş.

Ne yapalım derseniz www.vim.org derim ;) Eğer çok hardcore gelirse Cream derim; http://freshmeat.net/projects/cream/

Not: Yeter ama di mi o kadar Emacs dediniz sesimizi çıkartmadık, herşey de bir yere kadar :)

... ve o dedi ki "vi kullanmayı bilenlere, hiçbir Unix'de editör sıkıntısı çekmeyecekleri vadedilmiştir. emacs kullananlara ise ... tetris ?"

;)
0
FZ
VIM kullanarak ASP, JScript, SQL, T-SQL kullanan, VIM içinden veritabanına bağlanıp stored procedure güncelleyen, vb. işleri yapan bir adamın kalbini kırdığının bilmem farkında mısın ;-)

Emacs'la ilgili asıl sorun x tuşundan ziyade CTRL tuşu, kodlarken, yazı yazarken filan CTRL çok aşağıda kalıyor, o yüzden de Linux/UNIX kullananların sık kullandıklari bir tabir var: "Put the CTRL where it should be!" Yani CTRL'yi CapsLock'un olduğu yere koymak:

setxkbmap -option ctrl:swapcap

geri almak isterseniz:

setxkbmap -option

X ortamında kalıcı ayar için XF86Config-4 dosyasinda section "keyboard" bölümünde:

Option "XkbOptions" "ctrl:swapcaps"

Bu şekilde insan eline çok daha uygun bir kullanım ortaya çıkıyor. Tabii tersten gidilip Emacs içinde de ALT capslock değiştokuşu yapılabilir.

Bir de tabii şuna dikkati çekerim, bu yazı bağlamında Emacs önce, sonra ve sonra yine Lisp programlama için kullanılacak geliştirme ortamının temel bileşenlerinden biri olarak lanse edilmiştir. Yani her platformda, her şey için en uygun, en pratik, en az yer kaplayan, en sık bulunan editör olarak değil, bunu da göz önünde bulundurmakta fayda var. Yani burada Emacs bir araç sadece. Lisp'e hizmet eden bir araç. Tabii Lisp de bir araç. Programcının programlamadan tekrar zevk almayı öğrenmesi amacına hizmet eden bir araç! ;-)
0
FZ
Merak ettiğim şey şu: Bu yazıyı okuyan (şöyle bir bakan değil, okuyan) kaç kişi bu yazıdan faydalandı? Yani buradaki kılavuzu kullanarak bir Lisp geliştirme ortamı kurdu? Takıldığı bir yer oldu mu? Ya da tam olarak anlamadığı bir yer?

Ya da anlatımı kötü bulduğu bir yer?
0
tongucyumruk
Ben ilisp'i silip slime kurdum mesela... Bir de doğrudan lisp'le ilgili olmasa da emacs'ta sıradan günlük kullanımımın ötesinde fantastik işleri nasıl yapabilirim konularına daldım (mesela direk ftp üzerinde duran dosyaları düzenleyebiliyormuşuz).
0
Arkantos
Ben kendi açımdan yazıyı çok faydalı buldum. Emacs öğrenirken biraz da Common Lisp öğrenmek istiyorum. Yanlız ben Suse kullanıyorum. apt-get de kurulu. Ama sanırım paketler biraz farklı. Bu yüzden paketler yerine direkt kaynak dosyalarından kurmaya çalıştım. Diğer paketlerde 'Universal Foreign Function Interface' ya da 'Steel Bank Common Lisp' gibi paketleri Google'dan arama yaparak bulabildim. Ama ilk kısımdaki # apt-get install cl-clx-sbcl 'yi bulamadım. Bu yazıyı okuyanların farklı dağıtımlar kullanabileceklerini düşünerek bence en alta kullandığınız paketlerin kaynak dosyalarına bir bağlantı verirseniz çok güzel olacak. Bakalım bu makalelerle biraz Common Lisp öğrenmeyi umut ediyorum. Ayrıca çok ilgi çekici bir yazı olmuş.. Umarım devamı gelir.
0
FZ
Hmm, nihayet birileri eleştirilerini yazdı! ;-) (Tebrik mesajlarının ötesinde).

Gördüğümüz kadarı ile Lisp'e en çok destek veren iki dağıtım Debian ve Gentoo, en azından cl-clx-sbcl ya da cl-clx diye aratınca ilk gelen sonuçlar Debian ve Gentoo ile ilgili. Bu konuyu araştıracağız ancak şu aşamada Common Lisp'in temellerini öğrenip gücünü hissetmek için bu paket olmasa da olur. Kısa süre sonra burada yayınlanacak diğer Lisp makalelerinde bunu göreceksiniz zaten.

Tabii ki Lisp öğrenmek isteyenlerin gidip hemen GNU/Linux, Debian, Gentoo falan kurmaları şart değil. Max OS X ve MS Windows kullanıcıları için de öğrenme amaçlı çok güçlü Lisp geliştirme ortamları mevcut:

http://www.lispworks.com/

http://www.franz.com/

Eğer şu anda sisteminizde Emacs+SLIME+SBCL'i entegre olarak çalıştırabiliyorsanız bundan sonra FM üzerinden yayınlayacağımız ve duyuracağımız Lisp makalelerini kolayca kendi sisteminizde deneyebileceksiniz (hatta Lisp ortamı kurmaya üşenenler için bir sürprizimiz de olacak! ;-)
0
bm
Lispworks ve Franz'in Allegro'sunun da debianlastirilmis cekme/kurma paketleri var debian arsivlerinde. Bunlarin ikisinin de badava surumleri var ama kisitlanmis durumdalar (hafiza boyu, bir acista kullanma zamani vs.)

Bill Clementson piyasada ne var ne yok duzgun bir sekilde ozetledi blogunda evvelsi ay:

http://home.comcast.net/~bc19191/blog/041203.html

Bu yukarida yazdigim 'bir acilista kullanma zamani'nin niye onemli oldugunu acayim biraz. Lisp programlama genelde lispinizi calistirip ondan sonra aylarca onun icinde yasamak seklinde yapilir. Calisan lispi isinizi yapar hale getirirsiniz, devamli bastan calistirmazsiniz. Onun icin bir calisista en fazla 3-4 saat kullanmaya musade etmek bayagi bir kisitlama olabilir. Smalltalk kullandiysaniz ortami probleme uydurma modelini hatirlayacaksiniz. Lisp de oyle.
0
misafir
Benim merak ettiğim bir şey var. Aptalca bir soru soruyorsam özür dilerim. Çünkü lispçiler arasında bu soruya kızanlar var biliyorum. Lisp'le yazdığınız programın "derlendiği"ni söylüyorsunuz. Peki ama derlenmiş "binary" dosya nerede? Emacs'den çıkıp ./binary şeklinde bu dosyayı çalıştırabilir miyiz? Ya da Lisp (haşa) yorumlanan bir dilse, emacs'in dışında bir yorumlayıcıyla (benzetmek gibi olmasın python'daki gibi) yazdığımız programı nasıl çalıştırabiliriz? Aptalca bir soruysa tekrar özür diliyorum ama Lisp derlenen bir dil mi yoksa yorumlanan (interpreted) bir dil mi? Bunu bir türlü anlayamadım. Yardımcı olursanız sevinirim.
0
bm
Common Lisp'ten bahsediyorsak, standarda uymaya calisan bir cok 'ortam'[1] oldugunu soyleyerek cevaba baslayayim. Dil standardi derlemeyi tarif ediyor ama derleyici olmasini yahut olan derleyicinin byte code'a mi yoksa sogrudan islemcinin koduna mi cevirecegine karismiyor. Mevcut guncel CL ortamlari icinde sadece yorumlanarak calisan yok benim bildigim. Yukarida bahsedilen sbcl yorumlamayi da zannedersem once kodu islemci koduna derleyerek yapiyor. Yani sorunuza uyan cevap pratikte 'evet derleniyor.'

Derlenen dosyayi diger bircok dilde oldugu gibi bir 'runtime' ile beraber kullanilan bir dosya olarak dusunun. Genelde (tarihi sebeplerden dolayi) bu dosyaya 'fastload' dosyasi denir ve bircok CL ortami buna .fasl .fas veya .x86f (o f fastload'dan geliyor) ekler koyar. Bunu CL ortaminizi ve/veya statndart lisp 'imagen'inizi al bu fasli yukle calistir diyerek kullanabilirsiniz (#!/usr/bin/birey yazmak gibi dusunun). Bunu tam nasil yaptiginiz kullandiginiz CL'e bagli bir detaydir. Genelde 'ozgur'/bedava/orta mali[2] ortamlarda 'tek binary' cozumleri ilgi gosterilen seyler degil. Ozellikle Windows'da da calisan ticari ortamlarda tek exe uretmek gibi bir ozellik de vardir.

[1] 'Ortam' diyorum cunku genelde bir ortami alip degistirip kendi isinizi goren bir program yaratmak seklinde gormek de pek yanli solmaz CL ile calisma seklini.

[2] Niye sadece ozgur demiyorsun diye kizacaklara, bahsedilen sbcl'in 'public domain' yani orta mali oldugunu hatirlatayim. Eski Spice Lisp projesinden bu gune gelen CMUCL ve sbcl oyle dagitiliyorlar.
0
misafir
Teşekkür ederim.
0
FZ
Tartışmaya FM Forum - Lisp alanında devam etmeye ne dersiniz? Ben oraya birkaç şey yazdım:

http://www.fazlamesai.org/forum/viewtopic.php?t=1518
0
FZ
Bir başka soru: Bu yazıyı ve sonunda verilen diğer Türkçe Lisp makalelerini okuyan kişiler içinde eğer ki Lisp'e heves etmiş olan birileri var ise acaba bundan sonra ne tür bir yazı görmek isterler? Misal:

- Eğlenceli karikatürlerle desteklenmiş ve en temel Common Lisp bilgilerinin kullanılarak geliştirildiği metin tabanlı bir macera oyunu.

- SQL benzeri bir dilin geliştirildiği ve bunun bir tür CD veritabanı kurmak, sorgulamak için kullanıldığı basit bir Common Lisp örneği.

- Common Lisp ve web programlama.
0
Arkantos
Ben ilk planda Emacs ile günlük kullanımda işleri kolaylaştıracak lisp kodları nasıl yazılıyor. Onu çok merak ediyorum. Örneğin for döngüsünde: for { { ikinci {'i yazınca birincisini kapatmadan nasıl ikinciyi bu şekilde hizalayabiliyor vs.. Tabi bu şimdilik aklıma gelen örnek.. Eğlenceli karikatürlere de hayır demem ama :)
0
FZ
Hmm, demek bir Emacs Lisp heveslisi! Pekala, bunu da bir kenara not alalım ;-)
0
abakana
Paul Graham' ın Great Hackers adlı seminerini http://www.itconversations.com/shows/detail188.html ' den dinleyebilirsiniz. Bir süre önce sanırım FZ bunun çevirisini yapmıştı.

Kaynak: PlanetLisp
0
FZ
David Steuber de kendi sitesinde bize link vermiş, "Something for the Turkish." diye ;-)

http://www.david-steuber.com/Lisp/
0
FZ
cl-debian ekibinin cl-debian listesinde yazdıklarından fark ettiğim kadarı ile SLIME (Superior Lisp Interaction Mode for Emacs), artık ufaktan Debian yazılım deposuna girmeye başlamış. Testing ve Unstable için "apt-get install" ya da "aptitude" ile kurulabilir durumda.

Bu da demek oluyor ki Debian GNU/Linux kullanıcıları için güçlü bir Common Lisp geliştirme ortamı kurmak nerede ise çocuk oyuncağı hale geldi.
0
ysa
döküman için çok sağolun. lispi windowsta çözemedim. en azından bu yazıdan görece daha yeni olan bi yazıdaki windows için kurulumunu çözemedim. lispi kurdum ama pythonun komut satırı gibi bir ortamda açabildim (ağaç gibi bi şekil çıkıyor). bunun için (bir de o kadar seminerine gittim emoda diye düşünerek) ubuntuyu bu pazartesi kurdum baya bi acemiyim sorumda oldukça saçma kısımlar olursa lütfen hoşgörün. emacsı ve lispi yüleyebildim sanırım ancak slimeyi çekemedim ve diğer linkten yükleyip /home/kullanıcıadım kısmına da koydum ancak olmadı. linuxta gelen o sıkıştırmış olarak yüklediğim dosyada ayrıca derlemem veya kurmam gereken bir şey mi var? aslında şimdi bir daha baktım dün gecenin 4ünde uğraştığım için hatırlayamamışım slimeyi bir de synapticle yüklemişim. ama slime ile ilgili kodları emacsa yazınca herhangi bir şey olmadı ve verilen örnek kodları yazıp derleme de yapamadım. derleme yap diyorum alttaki satırda bilgi istiyor oraya ilk.lisp yazdım büyük bir ihtimalle öyledir diye ancak bu sefer de hiçbirşey yapılmadı diyor. slimeyi aşağıya yazdım bu sefer dosyayı bulamadı. sorum biraz karışık oldu sanırım. şimdiden teşekkür ederim. o ağaç şekline benzeyen logosu olan clispde de çalışabiliniyorsa hiç uğraşmasam mı? veya dr schemeyi yükledim orda çalışmam clispi öğrenmeme de katkı sağlar mı? komutları oraya da yazdım sanki hata verir gibi oldu *global-degisken* yazınca sonucu oldım. matlabdeki fonksiyonlar gibi olduğunu öğrenmiş oldum. bir de yazınızla istediğimi yapamadım ama ubuntumun uçbiriminin nerde olduğunu öğrendim ve nasıl kullanıldığına bir başlangıç yaptım. teşekkür ederim.
0
FZ
Merhaba, cs-lisp e-posta listesine abone olursanız, oradan yardımcı olabiliriz diye düşünüyorum.

Onun dışında LispBox veya Allegro CL 8.0 Express Edition entegre Common Lisp ortamlarını kurmayı deneyebilirsiniz. Gelişmeleri e-posta listesi üzerinden paylaşırsanız yardımcı olmaya çalışırız.
0
ysa
çok sağolun hemen üye oluyorum. ubuntuda bazı şeyler ters gitti yeniden yüklemek zorunda kaldım ama windowsu da bu şekilde kıra döke öğrenmiştim:)
0
huseyinb88
M-x slime yazdığımda [no match] diye bir hata alıyorum bir türlü çözemedim yardımcı olursanız sevinirim. İşletim sistemi debian 6.0, yukarıda anlatılan herşey sorunsuz olarak gerçekleştirildi.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Paul Graham’ın Startup Destek Şirketi İlk Meyvelerini Veriyor

FZ

Paul Graham'ın startup şirketlere destek olma amacı ile kurduğu Y Combinator* ilk meyvelerini vermeye başladı.

Y Combinator'dan aldıkları destekle bir şirket kuran iki genç üniversite mezunu http://reddit.com sistemini devreye soktular.

Hedeflerinde kısaca şunu diyorlar: "Her Internet kullanıcısının ana sayfası olmak istiyoruz." İnsanda Google çağrışımı yapan bir cümle, öte yandan sitenin sadeliği ve işlevselliği de Google'ı hatırlatmıyor değil. Fikir çok özgün değil, yeni Internet siteleri, haberler, yazılar, kısaca URLsi verilebilecek herhangi bir şey. Gönderdiğiniz haberin popülaritesi diğer üyeler tarafından belirleniyor. Buna göre sizin popülariteniz, vs. de belirleniyor. Kullanılan "karma" sözcüğü de doğrudan Slashdot'u çağrıştırmakla birlikte /. editör kaprislerinden ve yorum kirliliğinden uzakta, yepyeni bir kavramı hayatımıza katabilir.

trendalicious: Trendy del.icio.us, CafeSpot

FZ

trendalicious, bir sosyal "bookmark"lama servisi olan del.icio.us için geliştirilmiş olan ve gerçek zamanlı web sitesi popülaritesini ölçüp yansıtan bir sistem. Son 60 dakika içinde en az iki kişi tarafından yollanmış URLler görüntüleniyor ve bunlar da güncel URL mesajlarının toplam sayısına göre derecelendiriliyorlar.

trendalicious'u yapan Will Glozer, aynı zamanda CafeSpot'un da programcısı. Kendisi ile yapılan bir röportajı buradan okumak mümkün. CafeSpot'un development blog'u da işin perde arkasını yansıtıyor.

Bu güncel, ilginç ve popüler web siteleri hangi platform ve dil ile mi hazırlanmış? Güzel bir soru... ;-) (ve daha güzel bir cevap!)

Kaynak: Planet Lisp, Lemonodor.

Core Uygulama Sunucusu Kurulumu

anonim

Common Lisp tabanlı uygulama sunucumuzu ücretsiz olarak deneyebilirsiniz. Bunun için yapmanız gerekenlerin anlatıldığı belgeye göz atabilirsiniz.

Günümüzde üretilen yazılımların çoğu web uygulamaları şeklinde ya da web servisleri olarak hizmet vermektedir. Web uygulamaları, erişilebilir, birden fazla kişinin kullanımına elverişli ve merkezi olarak güncellenebilir servislerdir.

Gelecekte oldukça fazla web uygulaması ve web servisi yazacağımız düşünüldüğünde bu konuda bize yardımcı olacak araçlar üretmek iyi bir yatırım olacaktır. Bu nedenle yazımda sizlere Common Lisp dili ile yazılmış bir web uygulama sunucusu olan Kor Web Uygulama Sunucusu'nu tanıtacağım.

Bağlı Listeler, C, Lisp, Scheme...

FZ

Bağlı listeler programcıların kullanabilecekleri soyutlama araçları arasında önemli yer işgal ederler. Bu veri yapılarını kullanarak veri işleme süreçlerini kolayca yönetmek mümkündür.

Jonathan Bartlett, IBM developerWorks sitesindeki Techniques for using linked lists in C and -- smarter still -- Scheme makalesinde bağlı listelere dair önce C programlama örnekleri vermekte ve daha sonra liste yapısını dilin doğal parçası olarak ele alan Lisp benzeri Scheme dilinde benzer işlerin nasıl daha kolayca ve soyut seviyede yapılabileceğini göstermektedir.

Kent Pitman Lisp ve ötesi ile ilgili soruları yanıtladı - Bölüm 2

FZ

Kent Pitman, 2001 yılının sonuna doğru Slashdot camiasının Lisp/Scheme, standartlar, yazılım geliştirme ve diğer konulardaki sorularını cevapladı, meraklarını giderdi. Bir hayli detaylı olan bu soru cevap seansı uzunluğundan ötürü iki bölümde yayınlandı. İkinci ve son bölümü, Bilkent Üniversitesi, Bilgisayar Müh. bölümü öğrencisi Hayrettin Gürkök'ün çevirisi ile karşınızda... (1. bölüm burada, 2. bölümün ilk kopyası ise ileriseviye.org adresinde)