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'i Anlamak

anonim

Fazlamesai'deki Lisp hayranları bunu nasıl atladı bilmiyorum ama digg.com'da rastladığım, biz ölümlülerin kullandığı sıradan programlama dilleriyle uğraşanların da anlayacağı bir dille yazılmış The Nature of Lisp başlıklı bu yazı, Lisp hakkında şimdiye kadar okuduklarımın toplamından daha fazla şeyi anlamamı sağladı.

Fonksiyonel Geometri, Lisp, Escher, Postscript: Sanat ve Bilgisayarlar

FZ

Daha önce FM'de bir Mars programlama projesi yarışması bağlamında adı geçen Frank Buss bu sefer de gündemimizi Peter Henderson'ın makalelerinden uyarladığı ve Common Lisp kullanarak gerçekleştirdiği bir fonksiyonel geometri uygulaması ile meşgul ediyor. Fonksiyonel programlamanın grafik uygulamalarını kullanarak anlaşılması bakımından çarpıcı bir örnek. Program çıktısını Postscript olarak üretiyor.

Söz konusu grafik yapılar pek çok matematikçinin ve diğer bilim insanlarının da hayranlığını kazanan Hollandalı meşhur sanatçı M. C. Escher'in yapıtlarından esinlenerek hazırlanmış.

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.

Video: 5 dakikadan kısa sürede TCP/IP network ve multithreaded programlama

FZ

Daha önceden Rebel With A Cause ve A Day At The Beach makaleleri ile tanıdığımız tehlikeli programcılardan Sven Van Caekenberghe gene yapacağını yapmış.

ECLM '08 ve ELS '08'in Ardından

FZ

ECLM 2008 (European Common Lisp Meeting) ve ELS 2008 (European Lisp Symposium) tamamlandı. ECLM 2008'deki konuşmalardan birkaç örnek vermek gerekirse:
  • Marc Battyani, Lisp-based supercomputing
  • Juan José García-Ripoll, ECL - more than an Embeddable Common Lisp
  • Jeremy Jones, InspireData - how it was written in Lisp
  • Kristoffer Kvello, House Designer - using Knowledge Based Engineering and Lisp to automatically design buildings
  • Nicolas Neuss, Femlisp - solving partial differential equations with Common Lisp
  • Stefan Richter, Using Common Lisp for large Internet systems
  • Kilian Sprotte, PWGL - an environment for sound synthesis and computer aided composition