RTFM serisi, düzensiz aralıklarla geliştiriciler için zamansız ve tavsiye edilen kitaplar içerir. Ağırlıklı olarak uzmanlık kitaplarına odaklanılır, ancak bazen romanlara da yer verilir. Bugünün konusu, David S. Touretzky tarafından yazılan “Common Lisp: A Gentle Introduction to Symbolic Computation”.
Neredeyse tüm modern programlama dilleri, ilk olarak Lisp’te tanıtılan kavramlara dayanmaktadır. Bunlar şunları içerir: ififadesi, özyinelemeli işlev çağrısı ve simge veri türü. Ancak, şimdiye kadar yalnızca Lisp’in hakim olduğu yapılar da vardır. Bu nedenle, Lisp ile uğraşmanın, kişinin deneyiminden tamamen bağımsız olarak daha iyi bir programlama anlayışı geliştirmesine yol açtığı açıktır.
Bir zamanlar Lisp’in hiç kullanmasanız bile öğrenmeye değer bir dil olduğunu söyleyen ABD’li bilgisayar bilimcisi Eric S. Raymond’dan bir alıntı buna uyuyor. Tek başına bilgi edinmek zaten genel olarak daha iyi bir geliştirici olmaya yol açar. Öyleyse, fırsatınız olduğunda Lisp hakkında bir kitap okumaktan daha açık ne olabilir?
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
RTFM #4: Ortak Lisp
David S. Touretzky’nin “Common Lisp: A Gentle Introduction to Symbolic Computation” kitabını öneriyoruz. Kitap 1990 yılından kalmadır, bu nedenle Lisp diline kıyasla hala nispeten gençtir ve yaklaşık 450 sayfa içerir.
işlevler ve listeler
İlk bölüm, önce işlevler, semboller ve kompozisyon dahil olmak üzere bazı temel kavramları tanıtır. Bu, kod olmadan, yalnızca diyagramlar ve çizimler temelinde yapılır, bu da kitabı önceden programlama bilgisi olmadan bile anlaşılır ve erişilebilir kılar. Prensip olarak, ilk bölüm programlamanın gerçekte ne olduğu hakkında bir fikir verir.
İkinci bölüm daha sonra listeleri temel bir veri yapısı olarak tanıtır; bu, adı “liste işleme”nin kısaltması olan bir dilde şaşırtıcı değildir. Ancak aynı zamanda Lisp’te hem kodu hem de verileri temsil etmek için kullanılan S ifadelerinin temelini oluşturur.
Son olarak üçüncü bölümde bu S ifadelerini değerlendirmek için kullanılan EVAL fonksiyonu tanıtılmaktadır.Bu noktada Lisp artık bilgisayarda bir dil olarak da kullanılmaya başlandı ve böylece çalıştırılabilir programlar artık fiilen yazılabilir hale geldi.
Yan Etkiler ve Co.
Dördüncü bölümde daha karmaşık programlar yazabilmenin koşulları eklenmiştir. Bu noktaya kadar ne değişkenlerin ne de yan etkilerin ortaya konmamış olması dikkat çekicidir. Kitabın aktardığı üslup bu noktaya kadar işlevsel olarak nitelendirilebilir.
Ancak, bu kavramların artık entegre edildiği beşinci bölümde bu durum değişir, ancak bu, kodu değerlendirmenin ve ayrıca tahmin etmenin ne kadar zor olduğunu doğrudan gösterir, çünkü artık yalnızca işlevlerle değil, zamansal yönler hakkında da düşünmeniz gerekir. matematiksel duyu ile ilgisi vardır.
Son olarak altıncı bölüm, ağaçlar da dahil olmak üzere gelişmiş liste tabanlı veri yapılarını tanıtır. Değiştirilebilir ve değişmez veri yapılarını, veri yapılarının diferansiyel verimliliklerini, özdeşliği, eşitliği ve diğer ileri konuları kapsar. Bu bölüm, tabiri caizse, temel bilgilerin sunumunu sonlandırmaktadır.
Paradigmalar: işlevsel, özyinelemeli…
Ardından, yedinci ve sekizinci bölümler, uygulama ve yinelemeli olmak üzere iki programlama paradigması sunar. Özellikle bu iki bölüm, olağan ufkun ötesine bakmanıza yardımcı olabilir.
Geliştiricilerin çoğu, örneğin, yinelemeli ve yinelemeli prosedürlerin eşit derecede güçlü olduğunun muhtemelen farkındadır, ancak bir kişinin, yalnızca yineleme ve son yineleme kümeleri üzerinde çalışan herhangi bir yinelemeli yapı olmadan tamamen çalışabileceğinin bir kez daha açıkça gösterilmesi, farklı bir şeydir.
Son olarak kalan beş bölüm, şimdiye kadar belirtilen konuları tamamlayan çeşitli kavramları kapsar. Bunlar, örneğin G/Ç erişimini, blok yapılarını, Lisp tipi sistemi ve makroları içerir.
Çözüm
Kitabın izlediği sıra kesinlikle alışılmadık olarak tanımlanabilir. Diğer programlama kitaplarında nispeten erken ele alınan birçok konu (döngüler veya değişkenler gibi) bu kitapta çok geç ele alınmaktadır. Kitap, kolay anlaşılırlık ile derin ayrıntılar arasında iyi bir denge kuruyor.
Tüm bunlarda, Lisp dili neredeyse ikincil hale gelir. Tabii öğrenirsin ayrıca Lisp, ama en önemlisi birçok kavramsal şeyi elinden alabilirsin. Bu nedenle kitap, Lisp’i pratikte kullanmayan ancak genel olarak programlama ve programlama kavramlarıyla ilgilenen tüm geliştiriciler için de iyi bir okumadır.
()
Haberin Sonu
Neredeyse tüm modern programlama dilleri, ilk olarak Lisp’te tanıtılan kavramlara dayanmaktadır. Bunlar şunları içerir: ififadesi, özyinelemeli işlev çağrısı ve simge veri türü. Ancak, şimdiye kadar yalnızca Lisp’in hakim olduğu yapılar da vardır. Bu nedenle, Lisp ile uğraşmanın, kişinin deneyiminden tamamen bağımsız olarak daha iyi bir programlama anlayışı geliştirmesine yol açtığı açıktır.
Bir zamanlar Lisp’in hiç kullanmasanız bile öğrenmeye değer bir dil olduğunu söyleyen ABD’li bilgisayar bilimcisi Eric S. Raymond’dan bir alıntı buna uyuyor. Tek başına bilgi edinmek zaten genel olarak daha iyi bir geliştirici olmaya yol açar. Öyleyse, fırsatınız olduğunda Lisp hakkında bir kitap okumaktan daha açık ne olabilir?
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
RTFM #4: Ortak Lisp
David S. Touretzky’nin “Common Lisp: A Gentle Introduction to Symbolic Computation” kitabını öneriyoruz. Kitap 1990 yılından kalmadır, bu nedenle Lisp diline kıyasla hala nispeten gençtir ve yaklaşık 450 sayfa içerir.
işlevler ve listeler
İlk bölüm, önce işlevler, semboller ve kompozisyon dahil olmak üzere bazı temel kavramları tanıtır. Bu, kod olmadan, yalnızca diyagramlar ve çizimler temelinde yapılır, bu da kitabı önceden programlama bilgisi olmadan bile anlaşılır ve erişilebilir kılar. Prensip olarak, ilk bölüm programlamanın gerçekte ne olduğu hakkında bir fikir verir.
İkinci bölüm daha sonra listeleri temel bir veri yapısı olarak tanıtır; bu, adı “liste işleme”nin kısaltması olan bir dilde şaşırtıcı değildir. Ancak aynı zamanda Lisp’te hem kodu hem de verileri temsil etmek için kullanılan S ifadelerinin temelini oluşturur.
Son olarak üçüncü bölümde bu S ifadelerini değerlendirmek için kullanılan EVAL fonksiyonu tanıtılmaktadır.Bu noktada Lisp artık bilgisayarda bir dil olarak da kullanılmaya başlandı ve böylece çalıştırılabilir programlar artık fiilen yazılabilir hale geldi.
Yan Etkiler ve Co.
Dördüncü bölümde daha karmaşık programlar yazabilmenin koşulları eklenmiştir. Bu noktaya kadar ne değişkenlerin ne de yan etkilerin ortaya konmamış olması dikkat çekicidir. Kitabın aktardığı üslup bu noktaya kadar işlevsel olarak nitelendirilebilir.
Ancak, bu kavramların artık entegre edildiği beşinci bölümde bu durum değişir, ancak bu, kodu değerlendirmenin ve ayrıca tahmin etmenin ne kadar zor olduğunu doğrudan gösterir, çünkü artık yalnızca işlevlerle değil, zamansal yönler hakkında da düşünmeniz gerekir. matematiksel duyu ile ilgisi vardır.
Son olarak altıncı bölüm, ağaçlar da dahil olmak üzere gelişmiş liste tabanlı veri yapılarını tanıtır. Değiştirilebilir ve değişmez veri yapılarını, veri yapılarının diferansiyel verimliliklerini, özdeşliği, eşitliği ve diğer ileri konuları kapsar. Bu bölüm, tabiri caizse, temel bilgilerin sunumunu sonlandırmaktadır.
Paradigmalar: işlevsel, özyinelemeli…
Ardından, yedinci ve sekizinci bölümler, uygulama ve yinelemeli olmak üzere iki programlama paradigması sunar. Özellikle bu iki bölüm, olağan ufkun ötesine bakmanıza yardımcı olabilir.
Geliştiricilerin çoğu, örneğin, yinelemeli ve yinelemeli prosedürlerin eşit derecede güçlü olduğunun muhtemelen farkındadır, ancak bir kişinin, yalnızca yineleme ve son yineleme kümeleri üzerinde çalışan herhangi bir yinelemeli yapı olmadan tamamen çalışabileceğinin bir kez daha açıkça gösterilmesi, farklı bir şeydir.
Son olarak kalan beş bölüm, şimdiye kadar belirtilen konuları tamamlayan çeşitli kavramları kapsar. Bunlar, örneğin G/Ç erişimini, blok yapılarını, Lisp tipi sistemi ve makroları içerir.
Çözüm
Kitabın izlediği sıra kesinlikle alışılmadık olarak tanımlanabilir. Diğer programlama kitaplarında nispeten erken ele alınan birçok konu (döngüler veya değişkenler gibi) bu kitapta çok geç ele alınmaktadır. Kitap, kolay anlaşılırlık ile derin ayrıntılar arasında iyi bir denge kuruyor.
Tüm bunlarda, Lisp dili neredeyse ikincil hale gelir. Tabii öğrenirsin ayrıca Lisp, ama en önemlisi birçok kavramsal şeyi elinden alabilirsin. Bu nedenle kitap, Lisp’i pratikte kullanmayan ancak genel olarak programlama ve programlama kavramlarıyla ilgilenen tüm geliştiriciler için de iyi bir okumadır.
()
Haberin Sonu