Saya mencoba untuk belajar bahasa pemrograman baru dalam interval waktu yang teratur. Baru-baru ini, saya telah membaca bagaimana Lisp dan dialek-dialeknya berada di ujung spektrum lengkap dari bahasa seperti C / C ++, yang membuat saya cukup penasaran untuk mengetahui lebih banyak tentangnya. Namun, ada dua hal yang tidak jelas bagi saya, dan saya mencari panduan untuk itu:
Apakah LISP masih dipraktekkan / digunakan di dunia saat ini, atau apakah itu bahasa warisan seperti FORTRAN / COBOL? Maksud saya, selain mempertahankan kode yang ada, apakah itu digunakan pada proyek baru sama sekali?
Apa dialek yang paling banyak digunakan? Saya menemukan Skema dan Common Lisp sebagai 2 dialek yang paling lazim, dan ingin pendapat Anda yang mana yang paling disukai / bermanfaat untuk dipelajari - dan akan sangat bersyukur jika Anda dapat menyarankan sumber daya apa pun untuk pemula yang berpangkat pemula.
Sementara ingin belajar bahasa yang secara fundamental berbeda dari bahasa prosedural yang biasa saya gunakan, saya tidak ingin menginvestasikan upaya yang tidak semestinya dalam sesuatu jika itu benar-benar usang - saya masih akan belajar jika bahasa itu secara profesional "mati", tetapi hanya dengan perspektif akademik ...
Jawaban:
Saya lebih suka Skema, jika Anda ingin bekerja dengan JVM Anda harus memeriksa Clojure, yang merupakan cadel yang dirancang untuk bekerja di JVM. Dan ya, Lisp masih layak dipelajari untuk melihat betapa dahsyatnya desain seminimal itu! Orang-orang yang menciptakan lisp mendapatkan beberapa hal yang benar. Sungguh menakjubkan betapa banyak fitur baru keren dari bahasa modern lisp di tahun 1960-an!
Untuk skema yang disematkan coba tipu daya: http://www.gnu.org/s/guile/
sumber
Dalam menjawab pertanyaan 2, "Dialek yang paling banyak digunakan":
Tergantung pada bagaimana Anda menafsirkan "Paling banyak digunakan." Berikut adalah beberapa matematika serbet untuk batas bawah tentang berapa banyak menggunakan masing-masing dari beberapa dialek terpilih.
Sebagian besar kode mentah ditulis
Pemenang: Skema atau Common Lisp. Terlalu banyak yang tidak diketahui.
Sebagian besar kode 'produksi'
Pemenang: Saya menduga Common Lisp . Saya pikir kita bisa menjawab "Ya" untuk pertanyaan 1 berdasarkan penggunaan Common Lisp dan Clojure.
Sebagian besar pengguna akhir
Pemenang: Skema memiliki batas bawah terbaik di sini, karena ada nomor penjualan di Uncharted, tetapi cukup dapat diperdebatkan.
Kesimpulan
Kesimpulannya, saya menemukan apel besar itu.
sumber
Ya, memang, tetapi Anda harus tahu ke mana harus mencari. Orang-orang yang menggunakan LISP cenderung tidak berteriak terlalu keras tentang hal itu tetapi ada beberapa contoh dari beberapa startup profil tinggi yang menggunakannya untuk efek besar selama 20 tahun terakhir. Ini juga sangat populer di perusahaan kecil di Eropa.
Ini adalah pertanyaan yang valid, tetapi tidak mudah dijawab. Mungkin juga bukan jawaban yang sangat berguna untuk dijawab: banyak implementasi yang memiliki fokus khusus sehingga lebih baik dipilih jika cocok dengan masalah khusus Anda daripada didasarkan pada seberapa luas ia digunakan. Sebagai gantinya, saya akan memberi tahu Anda sedikit tentang opsi Anda dan Anda dapat memutuskannya sendiri.
LISP adalah kumpulan bahasa dan masing-masing bahasa tersebut memiliki keluarga dialek dan implementasi. Secara luas dialek jatuh ke dalam dua kubu "LISP" dan "Skema".
LISP: Hingga relatif baru, LISP Umum adalah raja. Itu adalah upaya untuk menyatukan semua LISP yang berbeda dan, tanpa bersikap jahat, adalah "C ++" dari LISP. Dengan kata lain, itu adalah bahasa BESAR . Itu memiliki segalanya. Selama beberapa tahun terakhir, Clojure telah muncul. Clojure adalah LISP yang berjalan pada Java Virtual Machine dan mencoba untuk membasmi dirinya dalam filosofi pemrograman fungsional. Secara tradisional, LISP lain telah benar-benar multi-paradigma. Clojure menarik karena ia mendapatkan yang terbaik dan yang terburuk dari LISP dan JVM. Masih banyak bertele-tele dari bahasa berbasis Java dan mereka sudah cukup gratis dan mudah dengan sintaks sehingga memiliki banyak tombol-tombol dan tombol untuk hal-hal yang berbeda, tapi mereka punya beberapa benar-benaride-ide menarik di sekitar tipe data, terutama beberapa cara praktis yang mereka buat untuk menerapkan ide-ide dari pemrograman fungsional.
Skema: Skema adalah subset ketat dari LISP. Skema ditemukan oleh Steele dan Sussman dan pada awal kehidupannya terkenal karena digunakan dalam Kursus Kuliah Komputasi 101 MIT. Skema didefinisikan dalam "Laporan Revisi Skema Bahasa Algoritmik (RnRS)". Ya: mereka punya lelucon matematika di sana. Skema adalah bahasa yang distandarisasi dengan cara yang tidak dimiliki LISP lain. Ini sangat membantu dengan portabilitas di antara implementasi, tapi itu bukan peluru perak. Upaya standardisasi cenderung konservatif dan inovasi dalam implementasi, terutama seputar hal-hal seperti modul, cenderung berbeda. Ada juga serangkaian SRFI (Skema Permintaan Implementasi) yang mirip dengan proses RFC IETF. Orang menggunakannya untuk membakukan hal-hal kecil sesuai kebutuhan.
Skema berbeda dari LISP bahwa mereka memiliki seperangkat persyaratan keras yang harus mereka penuhi, salah satunya adalah "optimasi panggilan ekor" yang membantu membuat rekursi menjadi efisien. Oleh karena itu, gaya pemrograman rekursif jauh lebih populer di Skema daripada di LISP. Skema itu, juga tanpa menjadi tidak ramah, seperti "C" dari LISP. Dengan kata lain, ini adalah bahasa yang kecil dan Anda seharusnya bisa menyimpan semua itu di kepala Anda sekaligus.
Saat ini ada dua keluarga Skema: Yang didasarkan pada versi ke-5 (R5RS) dan yang berdasarkan pada versi ke-6 (R6RS). Kompleksitas R6RS jauh lebih besar daripada para pendahulunya dan begitu banyak implementasi R5RS telah memilih untuk melewatinya, berharap R7RS akan lebih mirip dengan R5RS daripada R6RS. Proses standardisasi R7RS saat ini sedang berlangsung dan telah mencoba untuk memasukkan baik keinginan pelaksana R5RS maupun orang-orang dari R6RS dengan membakukan bahasa dasar kecil dalam kelompok kerja pertama mereka dan kemudian menugaskan kelompok kerja kedua untuk menstandarisasi fitur yang lebih besar. Ini akan memungkinkan bahasa untuk memiliki implementasi yang efisien dan berguna pada kedua perangkat keras tertanam kecil serta mesin yang lebih mampu.
Sekarang saya akan lebih spesifik:
PicoLisp adalah LISP yang benar-benar keren. Itu kecil! Penulisnya menulis untuk dirinya sendiri dan, seperti yang saya mengerti, dia mencari nafkah sejak 1980-an. Jika Anda pernah mendapat kesempatan untuk menghadiri ceramah olehnya maka Anda harus melakukannya: dia benar-benar menarik dan benar-benar tahu barang-barangnya dan Anda bahkan tidak akan mendapatkan bau terkecil dari apa pun yang mainstream atau membosankan.
Saya tidak terbiasa dengan implementasi Common Lisp jadi saya tidak akan berkomentar lebih jauh tentangnya.
Tipu daya adalah Skema GNU resmi.
Racket adalah skema R6RS tetapi akhir-akhir ini kelihatannya telah memperluas jaringan dan mencoba "untuk melayani sebagai platform untuk penciptaan, desain, dan implementasi bahasa."
Ayam bertujuan untuk menjadi Skema praktis. Ini didasarkan pada R5RS dan dikompilasi ke C. Ini ternyata menjadi keuntungan yang sangat, sangat, penting karena membuatnya sangat sepele untuk menggunakan perpustakaan C yang ada. Oleh karena itu Chicken mungkin merupakan skema yang paling berguna untuk mengganti Perl, Python, Ruby, dll, sebagai bahasa skrip Anda sehari-hari. Ada beberapa orang yang telah menggunakannya secara eksklusif untuk semua kebutuhan mereka selama beberapa tahun. Ini memiliki REPL interaktif serta kompiler. Komunitas (baik di milis dan IRC) berpengetahuan luas, ramah dan membantu.
Cari implementasi dengan banyak modul: ini menunjukkan bahwa itu dapat digunakan secara luas dan berarti kemungkinan memiliki sesuatu yang membantu dengan tugas yang ada.
Cari implementasi dengan kompiler atau, paling tidak, sesuatu yang tidak sepenuhnya berbasis IDE atau REPL. Banyak implementasi yang dirancang untuk pengajaran sangat sulit digunakan untuk penulisan tujuan umum.
Saya akan merekomendasikan Chicken karena itulah yang saya gunakan. Saya telah menggunakannya dalam proyek pribadi saya dan saya telah menggunakannya (dan saat ini menggunakannya) secara profesional.
Skema tidak mati secara profesional, tetapi Anda mungkin harus berusaha keras untuk menggunakannya dalam konteks itu. Sesuatu seperti Chicken jauh lebih dari sekedar pengejaran akademis dan dapat dengan mudah mencakup hampir semua basis bahasa tingkat tinggi apa pun yang saat ini Anda gunakan.
sumber
Tidak dapat benar-benar berbicara untuk semua Lisps tetapi Clojure jelas merupakan bahasa yang panas dan relevan saat ini. Kelompok Pengguna London Clojure yang saya datangi awal minggu ini memiliki lebih dari 100 peserta ....
Saya telah menemukan bahwa itu adalah pengalaman yang sangat mencerahkan untuk mempelajari Lisp dalam bentuk Clojure selama setahun terakhir (setelah banyak pengalaman dengan Java dan C #). Alasan utama untuk ini adalah:
Ini juga tampaknya menjadi pilihan praktis untuk penggunaan produksi nyata karena alasan berikut:
Saya pribadi kenal orang yang menggunakan Clojure di beberapa bank investasi dan perusahaan pemula. Saya juga memilih Clojure sebagai bahasa pengembangan utama untuk startup saya sendiri, jadi saya bersedia untuk menaruh uang saya di tempat mulut saya :-)
sumber
Saat ini saya sedang belajar Lisp (dan saya menyukainya). Saya menggunakan Common Lisp tetapi saya juga telah bermain-main dengan SBCL , Arc (perhatikan, itu adalah Lisp versi Paul Graham, yang disebutkan oleh Vitor Braga yang menciptakan Yahoo store / Viaweb) dan Allegro CL yang mirip dengan Visual Studio for Lisp (bisa buat GUI, namun, saya tidak pernah menggunakannya).
Sedangkan untuk penggunaan, Lisp telah banyak digunakan dalam Kecerdasan Buatan tetapi saya akan jujur, saya tidak yakin berapa banyak kegunaan "umum" lainnya untuk Lisp. Banyak situs web yang dibangun dalam Lisp awalnya telah ditulis ulang dalam bahasa lain sehingga sulit untuk mengatakan bahwa itu digunakan dalam pengembangan web (tidak mengatakan tidak, tetapi situs yang lebih besar yang menggunakannya tidak lagi melakukan ). Setelah melakukan pencarian cepat (sangat cepat) di sini adalah daftar perangkat lunak yang ditulis dalam Common Lisp dari Wikipedia .
[EDIT] Mengenai penggunaan Lisp secara profesional, ada pekerjaan di luar sana yang mengharuskan Anda menggunakan Lisp. Mereka tidak sebanyak, katakanlah pekerjaan Java atau C #, tetapi mereka ada. Saya pikir Lisp adalah salah satu bahasa yang digunakan untuk aplikasi internal dan dapat memberikan keunggulan kompetitif yang perusahaan tidak ingin menyerah dengan iklan yang mereka gunakan Lisp. Saya ingat melihat posting di P.SE yang menyatakan Smalltalk serupa di arena keuangan.
Juga, bisa menunjukkan Anda dapat mempelajari berbagai paradigma dapat membuka lebih banyak pintu bahkan jika Anda tidak menggunakan Lisp dalam pekerjaan.
[/SUNTING]
sumber
Jika Anda ingin belajar Lisp hari ini, saya akan melihat baik raket, yang merupakan implementasi skema cepat (well, itu sebenarnya berangkat sedikit dari skema, jadi itu adalah dialeknya sendiri sekarang) atau clojure, yang mendapat manfaat dari JVM beroperasi (jadi tersedia banyak perpustakaan, plus Anda dapat membuatnya berinteraksi dengan kode Java Anda sendiri).
Sekalipun Anda tidak mempelajarinya untuk benar-benar menggunakannya, mempelajarinya selalu bermanfaat: Anda mempelajari cara-cara baru untuk berpikir dan menangani masalah, bahkan dalam bahasa lain, begitu Anda memusatkan perhatian pada Lisp untuk sementara waktu.
sumber
Sebagian besar backend Amazon dulu berada di Lisp tetapi sekarang ditulis ulang dalam C ++, atau begitulah yang saya dengar (saya harus mengakui bahwa saya tidak memiliki sumber yang dapat diandalkan untuk ini).
Yahoo! Toko adalah salah satu contoh klasik dari aplikasi web Lisp. Dari Yahoo! Ketenaran toko yang mungkin pernah Anda dengar tentang Paul Graham . Graham adalah salah satu advokat Lisp terkenal dan menulis banyak tentang hal ini. Anda mungkin ingin membaca situsnya untuk mengetahui poinnya.
AutoCAD dulu memiliki dialek Lisp untuk sistem makro itu. Saya tidak tahu apakah masih ada.
Skema adalah bahasa yang bersih dan sangat elegan. Mungkin bahasa pemrograman favorit saya jadi saya mungkin bias. Jika saya akan menulis sekarang aplikasi utama saya mungkin akan menulis aplikasi kerangka dalam C, memperluas dan menetapkan aturan bisnis dalam Skema. Ini memungkinkan saya menggunakan Skema dan memanfaatkan C - untuk kecepatan dan ketersediaan perpustakaan untuk hampir semuanya.
sumber
Saya kenal beberapa orang yang melakukan Lisps di beberapa startup di Silicon Valley, dan saya tahu bahwa Amazon.com telah menggunakan Lisp sejak awal (meskipun saya dengar mereka menggantinya dengan C ++ karena suatu alasan?)
Tapi satu perusahaan yang harus diperhatikan adalah Anjing Nakal . Semua game mereka ditulis dengan dialek Lisp. Awalnya, mereka menggulung sendiri, tetapi mereka menggunakan MZScheme dalam seri Uncharted.
Saya bertaruh bahwa Common Lisp, Clojure, Scheme, dan Emacs Lisp adalah empat dialek yang paling banyak digunakan, dan dari semua itu, saya curiga bahwa Scheme adalah yang paling umum digunakan. Saya tidak punya apa-apa untuk mendukung ini, tentu saja. :)
Saya lebih suka SICP dan Little Schemer, seperti yang disarankan oleh orang lain, tetapi saya juga menyarankan Land of Lisp , yang merupakan bacaan yang agak menghibur. :)
sumber
Saya pikir itu sebagian tergantung pada apa yang ingin Anda lakukan dengan itu - jika Anda melihat memajukan wawasan Anda ke berbagai konsep pemrograman dan menjadikan diri Anda seorang programmer yang lebih baik maka saya akan mengatakan itu layak belajar setidaknya sejumlah kecil Lisp. Jika Anda mencari bahasa lain untuk ditambahkan ke resume Anda dengan maksud untuk mendapatkan pekerjaan yang bekerja dengan bahasa ini, Anda mungkin ingin mencari di tempat lain. Tidak ada banyak pekerjaan Lisp di luar sana.
Saya pribadi mencoba menggunakan SBCL atau yang lebih baru, Clojure (dan beberapa Emacs Lisp, tapi htat karena saya pengguna Emacs jangka panjang - saya akan mencoba mempelajari Emacs Lisp ketika saya mencoba belajar Lisp). Sekarang yang perlu saya lakukan adalah menemukan waktu untuk benar-benar bermain dengan bahasa-bahasa itu ...
sumber
Saya tidak tahu bahwa ada banyak pekerjaan di LISP, saya pasti tidak bisa melihatnya. Tapi saya ingat waktu yang lama membaca tentang beberapa penyelidikan NASA di mana mereka menjalankan LISP dan mampu memasukkan kode baru dari bumi.
Juga di New York grup pertemuan clojure sangat besar. Saya menduga bahwa jika Anda tertarik dan pergi ke grup meetup clojure Anda, Anda mungkin menemukan peluang untuk jaringan dan mencari pekerjaan (bukan pekerjaan clojure tetapi hal-hal seperti Java / C ++ / etc.). Tampaknya sangat besar di daerah New York, daerah lain mungkin berbeda.
LISP juga merupakan cara berpikir yang berbeda. Selain itu LISP dan SQL keduanya menghasilkan banyak ekspresi bersarang. Saya menggunakan SQL satu ton dan kemudian melihat LISP lebih masuk akal. Tetapi jika Anda memiliki masalah dengan SQL yang digunakan untuk tanda kurung dan ekspresi super saat menggunakan LISP mungkin akan membuat ekspresi SQL lebih mudah untuk diketahui.
Contoh klasik adalah bagaimana menerapkan MAX (a, b, c). Anda bisa membuat fungsi berbelit-belit dengan banyak pernyataan if. Atau bisa dibilang begitu
MAX (MAX (a, b), c)
dan gunakan dua panggilan bersarang sederhana dari dua item MAX, yang bagi saya lebih mudah dibaca. Meskipun jika kinerja adalah masalah Anda mungkin ingin melakukannya dengan cara lain juga, saya tidak repot-repot menghitung jumlah perbandingan saat menggunakan setiap metode ... Juga jika Anda menerapkan MAX melalui makro C atau metode lain yang mengevaluasi ekspresi beberapa kali Anda mungkin tidak mendapatkan hasil yang diharapkan karena ekspresi dapat dievaluasi beberapa kali jadi waspadalah dengan efek samping ...
sumber
MAX(MAX(a b) c)
Dua poin tambahan:
Pertama, Lisp adalah bahasa yang bagus untuk menulis kode di mana interaksi antara fungsi atau data seringkali kompleks. Dalam banyak bahasa populer, jika Anda bingung tentang mengapa program Anda melakukan apa yang dilakukannya, Anda harus menulis fungsi khusus untuk membiarkan Anda memeriksa keadaan internal program saat berjalan. Dalam beberapa bahasa, Anda harus menunggu kode Anda dikompilasi ulang. Tentu saja mungkin ada alat seperti pengadu yang membantu dengan ini. Namun, di Lisp, yang Anda butuhkan hanyalah cara untuk menghentikan program, dan kemudian, biasanya, Anda memiliki akses ke semua yang ada di Lisp. Di Common Lisp, kadang-kadang saya cukup mengetikkan ^ C, atau menelpon
error
menjadi satu fungsi (yang merupakan satu-satunya hal yang harus dikompilasi ulang, dan Anda tidak perlu melakukan apa pun untuk mengkompilasi ulang). Setelah saya menghentikan program, saya langsung dilemparkan ke debugger - tetapi debugger memberi saya semua kekuatan Lisp, dan saya dapat keluar dari debugger, memanggil fungsi-fungsi tertentu, dll. Saya dapat dengan mudah memeriksa salah satu struktur data dalam program saya. Sebagian besar Skema harus memungkinkan praktik serupa. Lisp tidak unik dalam hal ini, tetapi apa yang ditawarkannya melampaui apa yang ditawarkan banyak bahasa populer.Kedua: Jika Anda akan bereksperimen dengan dialek Lisp, saya tidak akan melakukannya tanpa (a) menggunakan editor yang cocok dengan tanda kurung, dan (b) mempelajari lekukan Lisp yang tepat. Sebaiknya gunakan editor yang akan memperkirakan lekukan yang tepat untuk Anda juga. Pemformatan kode gaya C / C ++ / Java dirancang untuk bahasa dengan kurung / kurung / kurung lebih sedikit daripada Lisp. Gaya mencetak yang cantik sangat bagus setelah Anda terbiasa dengannya, dan Anda tidak akan bingung dengan tanda kurung atau menghabiskan setengah dari ruang Anda dengan menempatkan satu tanda kurung tutup per baris.
sumber
Saat ini saya mendapat kesan bahwa Lisp sebagian besar digunakan di toko-toko konsultasi (bukan toko konsultasi yang paling sering menggunakannya).
Itu dianggap outre sedikit untuk perangkat lunak praktis. Sebagian besar karena orang tidak terbiasa dengan itu, saya percaya.
Secara tradisional, Skema adalah dialek Lisp yang akademis, dan Common Lisp adalah dialek industri.
Lisp sangat berguna untuk manipulasi simbolik dan kemampuan refleksi-esque.
Sebagai contoh, kode yang saya tulis untuk belajar Lisp adalah sebuah program yang membangun fungsi lambda acak, mengevaluasinya, dan kemudian mengoperasikannya, dalam upaya untuk meminimalkan perbedaan fungsi dengan fungsi target. Semua itu adalah manipulasi langsung. Dalam bahasa seperti C ++ atau Java, saya harus menciptakan representasi untuk fungsi yang akan dimanipulasi komputer.
sumber
Saya ingin menambahkan beberapa perspektif tentang Common Lisp and Scheme. Saya telah menghindari clojure karena JVM, jadi saya tidak memiliki banyak perspektif tentang itu.
Skema adalah bahasa yang ringkas dan indah. Butuh banyak keputusan yang harus diambil CL karena warisan, dan mengambil pendekatan yang lebih murni. Misalnya, variabel dan fungsi berada di namespace yang sama. Bahasa default lebih kecil dan lebih ringkas, yang bekerja dengan baik untuk mengajari Anda hal-hal yang baik tentang cisp, misalnya itu menekan penggunaan rekursi alih-alih iterasi, karena secara default tidak memiliki loop berulang, dan membutuhkan pengoptimalan panggilan ekor . Skema memiliki sistem makro higienis yang sangat menarik, yang ada banyak nilai untuk belajar. Tapi IMO, saya akan merekomendasikan untuk belajar macro-style Unhygienic macro terlebih dahulu, yang sebagian besar dialek skema (?) Menawarkan setidaknya satu implementasi, bahkan jika itu bukan bagian dari spesifikasi. Karena tampaknya Anda sangat ingin belajar bahasa demi belajar, saya
Karena itu, komunitas Skema terpecah-pecah, dan selain dari beberapa kantong kecil, tampaknya sebagian besar didedikasikan untuk penelitian daripada menyelesaikan pekerjaan nyata ... Misalnya setiap dialek memiliki manajer paket mereka sendiri, dan paket yang paling sering tidak portabel. lintas dialek, yang merupakan masalah besar dalam komunitas skema.
Lisp umum di sisi lain, tampaknya menjadi pendekatan yang lebih pragmatis untuk mengembangkan bahasa. Standarnya sedemikian rupa sehingga banyak kode lisp yang portabel di antara implementasi, banyak kompiler yang cepat dan dioptimalkan dengan baik. Ada satu set paket besar, banyak di antaranya portabel di antara implementasi. Dan tampaknya sejumlah besar produk nyata sedang dibuat dalam bahasa tersebut. Dan dengan quicklisp, manajemen paketnya terasa cukup dekat dengan apa yang akan Anda dapatkan di komunitas modern seperti katakanlah Ruby, atau Node. CL, namun bukan tanpa cacat, ia memiliki spesifikasi yang sangat besar pada titik ini dibandingkan dengan skema, dan bahkan itu sistem objek CLOS, sesuatu yang secara tradisional ditulis sebagai perpustakaan di Lisps, adalah bagian dari spesifikasi IIRC. Dan Anda bisa merasakan warisan tertanam melalui sejumlah besar sistem.
Kalau tidak, saya katakan saya tidak bisa berbicara di clojure, dan Emacs Lisp jelas merupakan pilihan yang tepat jika tujuan Anda adalah menulis ekstensi Emacs, dan jelas bukan pilihan yang sesuai untuk perangkat lunak lain.
TLDR; Jika tujuan Anda adalah untuk belajar, saya merekomendasikan Skema. Namun, jika Anda ingin membuat perangkat lunak, saya akan merekomendasikan Common Lisp dari dua varian cadel utama.
sumber
Saya belajar banyak dari jawaban. Terima kasih untuk semua yang berkontribusi dalam percakapan yang mencerahkan ini.
Saya harus menyebutkan LISP baru . Meskipun sedikit berbeda dari CL dan Skema, ini mengimplementasikan banyak fungsi yang sangat berguna. Saya menemukan server http, fungsi multi-pemrosesan (Cilk) dan fungsi evaluasi jarak jauh sangat bersih dan mudah digunakan.
Eksekusi tunggal kecil, cepat dan termasuk banyak baterai keren.
sumber
Faktor lain yang perlu dipertimbangkan dalam memilih dialek Lisp mana yang harus dipelajari adalah jumlah dan kualitas implementasi. Jika dialek hanya memiliki satu atau dua implementasi, maka Anda terjebak dengan kekurangannya sampai kelemahan itu diperbaiki, dan selalu ada kemungkinan orang akan berhenti memperbaiki penerapannya. Dalam dirinya sendiri itu bukan alasan untuk tidak menggunakan dialek implementasi tunggal Lisp, tetapi itu sesuatu yang harus diperhitungkan. Keuntungan dari Skema dan Common Lisp adalah bahwa ada banyak implementasi dialek ini. Kedua bahasa telah menerbitkan standar, sehingga implementasi yang relatif baru cenderung menjalankan kode yang sama, sebagian besar. Beberapa implementasi ini sudah ada sejak lama, tetapi masih dalam pengembangan aktif: Mereka sekarang implementasi berkualitas tinggi, dan mereka masih disempurnakan.
sumber