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

0
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.

Görüşler

0
malkocoglu_2
Google'da kazara su baglantiya denk geldim: MIT'de bir hocanin unlu bir dersi imis, ve MPED video dersleri indirilebilir halde paylasiliyor:

Ders ismi: "Programlama Dilleri, Yapilari ve Yorumlanmalari (Structure and Interpretation of Computer Programs)".

LISP'de derste isleniyor goruldugu kadariyla.

http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

Uyari: Video derslerinin buyuklukleri dehset seviyelerde. Indirmesi gunlerce surebilir.





0
bm
Evet bu MIT'de CS birinci siniflara okutulan ders. Kitabi da acik bunun

http://mitpress.mit.edu/sicp/full-text/book/book.html

O filimlerin eski olduguna bakmayin, bugun de o isler ayni. Dil bilenler indirsinler, pisman olmazlar.

Sussman sonra bir de 'Mekanik iyi ogretilmiyor, bunu duzeltmek lazim' diye mekanik kitabi yazdi. 'Structure and Interpretation of Classical Mechanics'

http://mitpress.mit.edu/SICM/book.html

Bu Sussman YZ calisanlarin belki hatirlayacagi 'Sussman Anomaly'de adi gecen Sussman.
0
FZ
Ünlü bir değil, iki hocanın dersi.

ADSL bağlantısı olan biri 20 bölümlük dersi bir iki günde indirebilir.

Ders, bu yazıda bahsedilen Scheme isimli Lisp benzeri dil ile anlatılıyor.

Düzelteyim: Ders, Scheme isimli güzel programlama dili kullanılarak mükemmele yakın şekilde anlatılıyor.

Uyarı: İlk 5 bölümü izledim ve hayran kaldım! Bağımlılık yapabilir! Matematik yüksek lisansı yapmış ve son birkaç yıldır profesyonel yazılım geliştirme işi ile uğraşan bir dostum da benimle birlikte izledi, o da hayran kaldı. Arada videoyu kesip aramızda tartıştık, hoca filanca yerde ne demek istiyor, yeni açılımlar, vizyon genişlemeleri, aa bu enteresan hadi gel buna benzer bir mevzuyu bir de Emacs+SLIME+Common Lisp ortamında deneyelim diye... sonra tekrar videolara döndük, kaldığımız yerden devam ettik, ikimizin tepkileri benzerdi: Vay be, çok acayip adamlar ve olağanüstü bir ders anlatımı.

Bir başka not: Tahta bizdeki üniversitelerin tahtası gibi. Tebeşir de. Masa da, sıradan bir masa. Bilgisayar sistemleri desen yıllar öncesinin, şimdi bizde çok daha gelişmişleri var. Ama öyle detaylar, öyle bir atmosfer, öyle nüanslar var ki, insana bir kez daha "evet bir kurumu kurum yapan, bir üniversiteyi üniversite yapan, farklı kılan duvarı, mobilyası, tahtası, bilgisayarı değil oradaki insanların karizması, çapı, kalitesi, yaratıcılığı, entelektüel derinliği ve hoca öğrenci ilişkisi, hoca hoca ilişkisi" dedirtiyor.
0
bm
Turkiye'deki universitelerde de var boyle hocalar. Zaman icinde 20-30 tanesine boyle bir seri hazirlatmanin maliyeti de boyyuklerimizin bir universite acma toreninden fazla olmasa gerek. Yani biraz gayretle bu tip dersler ve fazlasi Turkce olarak da nete cikar, bunun icin devletin ne icazeti ne yardimi gerekir -- biz yapariz. Zaten farkindaysaniz bu insanlarin Karstaki cocugun evine misafir olup ufkunu acmalarina engel olan seylerin asagi yukari hepsi kendi kendimize getirdigimiz engeller. Teknoloji sayesinde oyle bir ucuzluk ve bolluk olabiliyor ki ufku capi belli insanlarin ufkuyla sinirlandirilmis ufuklar bile iyilesmeninin engellenemez oldugu esigi asmak uzere.
0
malkocoglu_2
||Zaman icinde 20-30 tanesine boyle bir seri
||hazirlatmanin maliyeti de boyyuklerimizin bir
||universite acma toreninden fazla olmasa gerek.

Evet. Bu fikri, sahsen ulasabildigim her yetkili/medya tiplerine soylemekten artik yorgun dustum! Devlet devletse, elini etegini herseyden cekmis ve bir tek sosyal konular ile ugrasmasi gereken bir "sey" ise, bence insanlara veebilecegi bundan daha iyi bir ve hizmet yontemi bulamaz. Konusunda en iyi olan 20-30 hocanin derslerini kayit ederiz (Turkce olarak tabii), ve o 20-30, birdenbire milyonlara olceklenebilir. Endustri uretiminin seri, yazilim uretimin ultra-seri oldugu gunumuzde (kopyalamak/cogaltmaktan bahsediyorum), egitim niye hala el işi hizinda ilerlesin ki?

0
bm
Aman devlet bunu yapmaya kalkarsa lutfen baskasini yasaklayarak yapmasin. Biz yapariz bunu, maliyetler muazzam degil. Bittorrent vs. gibi dagitim kanallari da var. Devlet memuru universite gorevlilerinin boyle islerde rol almalarinin kanuni durumu nedir bilmiyorum ama, bilen var mi? (Sebil dagitimdan bahsediyorum, Creative Commons tipi bir lisansla, para kazanmaktan degil).

0
malkocoglu_2
Devlet yapsin derken, "fon acilsin" demek istemistim, yani X universiteye(lere) verilen belli bir fon (grant) bu isi pek iyi gorur. Isin kontrol mekanizmasi arkasindaki burokrasi ne olur bilemem, uzmanligima girmiyor. Ama verimli bir sekilde yapilabilecek bir is gibi gozukuyor.

0
bm
Ben de oyle anladim. Yanliz devlet bu isleri yaparken baskalarinin yapmasini yasaklayarak da yapabiliyor (internet isinde oyle oldu, 'ben yapicam benden baska kimse yapamaz yapanin kanunla ustune giderim hapse atarim' dedi. Turkiye'nin en az 10 senesi kayboldu bu yuzden. YOK de yarin 'siz benim malimsiniz, ne o oyle internate karsi konusmak' der, kicimizin ustune otururuz. Korkum o.)
0
malkocoglu_2
Baglantinin ise yaramasina sevindim. Son paragrafa da katiliyorum: Iyi hocalar konularini oyle basitlestirerek, arka planini gosterek, sifirdan tureterek ve anektodlarla susluyorlar ki, insana bir anlamak kaliyor. Ve evet, eger iyi hocalar etrafta varsa, dort duvar arasi herhangi bir yer univesite olabilir (iyi bir kitapligi olma sartiyla) :)
0
bm
Bizim alanimizda yavas yavas kutuphane de gerekmemeye basladi. Evet, henus Knuth'un kitaplari acik degil, bir suru akademik yayin hala eski duzenin botudurugu altinda ama bu hizla degisiyor. Mesela FZ'nin enerjisini gomdugu Common Lisp'i tanitma cabalarina bakarsak, en onemli iki kaynagin (CLtL2 ve hyperspec) acik oldugunu, tali kaynaklarin bir kisminin da ulasilabilir oldugunu goruyoruz. FM okurlari arasinda acik dokuman yaratmaya muazzam sosyal destek var, ve kucuk buyuk bircok Turkce belge ortaya cikiyor. Gidisat fena degil, bugun TR'de 10 yasinda olan cocuklar lisede kendi baslarina birseyler ogrenmek istediklerinde bunu kolayca yapabilecekler. (Benim icimi sizlatan on sene evvel on yasinda olanlari bu imkanlardan devlet eliyle kanun yasak vs. marifetiyle mahrum etmis olmamiz.)
0
malkocoglu_2
Genel olarak bir universite kavramindan bahsediyorsak, gene diger kavram olan kitapligin bu okuldaki her ders icin yeterli olacagini soyleyemeyiz. Mesela su an matematikte ihtiyacim olan cogu kaynagi elektronik olarak bulmam mumkun degil.

Bir de tabii, kitaplikta bir kitaba bakarken hemen yanindaki kitabi kesfetme hazzi var! :) Tabii sirf bunun icin e-kitap yapmayalim demiyorum.

Tum bunlardan sonra, hic kusku yok, ileride gidisat elektronik kitaplik oldugu suphesiz. Su video derslerini bir yapalim da! (Alt dallarda duran meyve. Koparmasi kolay).

0
bm
Haklisiniz ortam olarak iyi bir universiteyi yaratmamiz mumkun degil, ama merakliya/hevesliye bilgiyi ulastirmamiz mumkun. Hatta soyle diyeyim merakli ve heveslinin bilgiye ulasmasina engel olmak oldukca zor hale geliyor.

Bu arada matematik icin de yavas yavas acik kitaplar ortaya cikiyor. Mesela (Google'da ilk hit):

http://www.math.gatech.edu/~cain/textbooks/onlinebooks.html

ACM, IEEE ve USENIX'e dijital kutuphanelerini actirmak lazim ama kisa vadede cok zor tabi.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Lisp ile TILSIMLI ve Renkli Programlama: Lisperati

FZ

Tüm zamanların en renkli Common Lisp programlama kılavuzlarından Lisperati artık anadilimizde.

Söz konusu belge İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü öğrencisi Seda Çelebican tarafından Türk diline çevrildi. Belgenin Türk kültürüne uyarlanmasında ve genel editörlük işlemlerinde İstanbul Bilgi Üniversitesi eMBA Yazılım Geliştirme ekibinden Emre Sevinç emek harcadı. Bu süreçte çok titiz eleştirileri, geri beslemeleri ile bize yardımcı olan Bilkent Bilgisayar Mühendisliği bölümü öğrencilerinden Hayrettin Gürkök'e ve Lisp konusunda yardımcı olan Bülent Murtezaoğlu'na teşekkürü bir borç biliriz. Belgedeki hatalardan çevirmen ve editör sorumludur. Orjinal belgenin yazarı Dr. Conrad Barski hiçbir maddi hatadan ötürü sorumlu tutulamaz. Belgeyle ilgili tartışma ve her türlü soru için bu haberin altına yorum yazabilir, iletişim kurabilirsiniz.

Lisperati belgesindeki kodları denemek için hiçbir şey kurmanıza gerek yok. Belgede anlatıldığı gibi uzaktaki bir telnet servisine kolayca bağlanıp kodları hemen derleyebilirsiniz ancak bu konularla daha ciddi ilgileniyor ve kendi Lisp ortamınızı kurmak istiyorsanız daha önce FM'de yayınlanan Common Lisp Geliştirme Ortamı Kurulumu kılavuzundan faydalanabilirsiniz.

Güncelleme (2/5/2005): Kılavuzu PDF olarak hazırlayıp Ayhan Barış'a çok teşekkür ederiz.

Jolt Awards - Productivity Winner: Practical Common Lisp

FZ

Daha önce yine bu sayfalarda meşhur JOLT ödülleri ile ilgili duyurularımız olmuştu. Biraz geç de olsa fark ettiğimiz bir bilgi: Teknik Kitaplar kategorisinde Üretkenlik Ödüllerinden birini kazanan üç kitaptan biri: Practical Common Lisp.

Neden Arc Özellikle Nesne Yönelimli Değil?

FZ

Paul Graham'ın Why Arc Isn't Especially Object-Oriented makalesi yazılım dünyasında bazı çok tekrarlanan ve düşünmeden kabul edegeldiğimiz kalıpları sorgulamamız için kısa ve etkili makalelerden biri.

Daha önce Common Lisp ile Internet Programlamaya Giriş Kılavuzu makalesi ile tanıdığımız İstanbul Bilgi Üniversitesi, Bilgisayar Bilimleri bölümü öğrencilerinden Haldun Bayhantopçu'nun çevirisi ile bu makaleyi FM'de de yayınlıyoruz. Çevirinin daha güzel bir hale gelmesinde emeği geçen Türkiye Lisp Çalışma Grubu üyelerine teşekkürler.

Common Lisp Geliştirme Ortamı Kurulumu

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.

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.