Mengapa saya harus belajar Lisp? [Tutup]

125

Saya benar-benar merasa bahwa saya harus belajar Lisp dan ada banyak sumber daya yang baik di luar sana untuk membantu saya melakukannya.

Saya tidak menunda sintaksis yang rumit, tetapi di mana dalam "pemrograman komersial tradisional" saya akan menemukan tempat-tempat yang masuk akal untuk menggunakannya daripada bahasa prosedural.

Apakah ada aplikasi pembunuh komersial di luar sana yang telah ditulis dalam Lisp?

David
sumber
5
Sulit ditunda oleh apa yang tidak ada.
Kaz
Baca resume Philip Greenspun . Penuh dengan pekerjaan Lisp nyata.
Kaz
1
Juga disini . Greenspun bekerja pada simulasi jaringan switch paket, desain DSP, desain prosesor, tata letak VLSI, otomatisasi teknik mesin, otomatisasi pemindahan bumi, dan terus-menerus, semua menggunakan Lisp atau melibatkan Lisp. Dia membantu merancang arsitektur Hewlett Packard's PA-RISC menggunakan alat yang dikembangkan pada mesin Lisp.
Kaz
Berikut adalah beberapa aplikasi yang dikembangkan di Lisp - Emacs, G2, AutoCad, Igor Engraver dan Yahoo Store
Arulx Z

Jawaban:

55

Salah satu kegunaan utama untuk Lisp adalah dalam Kecerdasan Buatan. Seorang teman saya di kampus mengambil kursus AI lulusan dan untuk proyek utamanya ia menulis sebuah pemecah " Lights Out " di Lisp. Beberapa versi dari programnya menggunakan rutinitas AI yang sedikit berbeda dan pengujian pada 40 atau lebih komputer menghasilkan beberapa hasil yang cukup rapi (saya berharap itu online di suatu tempat bagi saya untuk ditautkan, tapi saya rasa tidak).

Dua semester lalu saya menggunakan Skema (sebuah bahasa berdasarkan Lisp) untuk menulis program interaktif yang disimulasikan rutinitas "Who's on First" karya Abbott dan Costello. Input dari pengguna dicocokkan dengan beberapa struktur data yang cukup rumit (menyerupai peta dalam bahasa lain, tetapi jauh lebih fleksibel) untuk memilih seperti apa respons yang sesuai. Saya juga menulis rutin untuk menyelesaikan slide puzzle 3x3 (sebuah algoritma yang dapat dengan mudah diperluas ke puzzle slide yang lebih besar).

Singkatnya, belajar Lisp (atau Skema) mungkin tidak menghasilkan banyak aplikasi praktis di luar AI tetapi ini adalah pengalaman belajar yang sangat berharga, seperti yang telah dinyatakan oleh banyak orang lain. Pemrograman dalam bahasa fungsional seperti Lisp juga akan membantu Anda berpikir secara rekursif (jika Anda memiliki masalah dengan rekursi dalam bahasa lain, ini bisa sangat membantu).

Justin Bennett
sumber
5
Mengapa Anda mengatakan Lisp hanya baik untuk AI? Juga, ini adalah bahasa multi-paradigma. Fungsional hanyalah salah satu dari beberapa paradigma yang dimungkinkannya.
Luís Oliveira
6
Saya tidak mengatakan itu hanya digunakan untuk AI, saya mengatakan salah satu kegunaan utamanya adalah AI. Apakah kamu membacanya?
Justin Bennett
32
"Tolong jangan berasumsi bahwa Common Lisp hanya berguna untuk Database, Kerangka Uji Unit, Filter Spam, ID3 Parser, Pemrograman Web, Server Shoutcast, Penerjemah Generasi HTML, dan Penyusun Generasi HTML hanya karena ini adalah satu-satunya hal yang terjadi untuk diterapkan di buku Praktis CL "
Mikael Jansson
23
@JustinBennett ya Anda mengatakannya. Di sini: "Singkatnya, mempelajari Lisp (atau Skema) mungkin tidak menghasilkan banyak aplikasi praktis di luar AI". Aku benci ketika orang-orang berkonfrontasi ketika sedang salah.
Luka Ramishvili
127

Lisp adalah bahasa yang besar dan kompleks dengan runtime yang besar dan kompleks untuk mendukungnya. Untuk alasan itu, Lisp paling cocok untuk masalah besar dan rumit.

Sekarang, masalah yang rumit tidak sama dengan masalah yang rumit . Masalah yang kompleks adalah masalah dengan banyak detail kecil, tetapi itu tidak sulit. Menulis sistem pemesanan maskapai adalah bisnis yang kompleks, tetapi dengan cukup uang dan programmer tidak sulit. Dapatkan perbedaannya?

Masalah yang rumit adalah masalah yang berbelit-belit, masalah di mana pemisahan dan penaklukan tradisional tidak berhasil. Mengontrol robot, atau bekerja dengan data yang tidak tabular (bahasa, misalnya), atau situasi yang sangat dinamis.

Lisp sangat cocok untuk masalah di mana solusinya harus diperluas; contoh klasiknya adalah editor teks emacs. Ini sepenuhnya dapat diprogram, dan dengan demikian lingkungan pemrograman dengan haknya sendiri.

Dalam bukunya yang terkenal PAIP , Norvig mengatakan bahwa Lisp sangat ideal untuk pemrograman eksplorasi. Yaitu, pemrograman solusi untuk masalah yang tidak sepenuhnya dipahami (sebagai lawan dari sistem pemesanan online). Dengan kata lain: Masalah rumit.

Selanjutnya, mempelajari Lisp akan mengingatkan Anda tentang sesuatu yang mendasar yang telah dilupakan: Perbedaan antara Von Neumann dan Turing. Seperti kita ketahui, model komputasi Turing adalah model teoretis yang menarik, tetapi tidak berguna sebagai model untuk mendesain komputer. Von Neumann, di sisi lain, merancang model bagaimana komputer dan komputasi dijalankan: Model Von Neumann. Inti dari model Von Neumann adalah Anda hanya memiliki satu memori, dan menyimpan kode dan data Anda di sana. Perhatikan baik-baik bahwa program Java (atau C #, atau apa pun yang Anda suka) adalah manifestasi dari model Turing. Anda mengatur program Anda dalam beton, sekali dan untuk semua. Maka Anda berharap dapat menangani semua data yang dilemparkan ke sana.

Lisp mempertahankan model Von Neuman; tidak ada batas yang tajam dan ditentukan sebelumnya antara kode dan data. Pemrograman dalam Lisp membuka pikiran Anda akan kekuatan model Von Neumann. Pemrograman dalam Lisp membuat Anda melihat konsep lama dengan cara baru.

Akhirnya, karena bersifat interaktif, Anda akan belajar berinteraksi dengan program saat mengembangkannya (bukan kompilasi dan jalankan). Ini juga mengubah cara Anda memprogram, dan cara Anda melihat pemrograman.

Dengan intro ini saya akhirnya dapat menawarkan balasan untuk pertanyaan Anda: Apakah Anda akan menemukan tempat-tempat yang mengalahkan bahasa "tradisional"?

Jika Anda seorang programmer tingkat lanjut, Anda memerlukan alat-alat canggih. Dan tidak ada alat yang lebih maju dari Lisp. Atau, dengan kata lain: Jawabannya adalah ya jika masalah Anda sulit. Tidak sebaliknya.

user7517
sumber
30
"tetapi dengan cukup uang dan programmer itu tidak sulit" - yang mengatakan, diberikan cukup banyak programmer itu menjadi mustahil ;-)
Jonas Kölker
Saya telah membaca tentang kemampuan lisps untuk menghasilkan kode dengan cepat, tetapi saya juga telah membaca bahwa itu dapat dikompilasi .. apakah ada implementasi yang dapat memadukan pelaksanaan yang ditafsirkan dan dikompilasi? atau yang mengandung kompiler sendiri?
centaurian_slug
@centaurian_slug: Ya, tentu saja. Itu bagian dari kekuatan. Setiap versi yang tidak sengaja dilumpuhkan akan memiliki kompiler / juru bahasa yang tersedia saat runtime. Jadi, misalnya, pengembang dapat masuk ke koneksi khusus di server webnya, melakukan debugging, memperbarui beberapa definisi kelas dan fungsi, dan mungkin mengkompilasi ulang apa pun yang bergantung pada definisi tersebut jika perlu. Semua saat server aktif dan berjalan. Mungkin tidak legal di perusahaan yang khawatir tentang kepatuhan SOX, tapi itu salah satu alasan industri menggunakan bahasa braindead seperti Java dan C #
James
46

sintaks yang rumit ??

Sintaks untuk lisp sangat sederhana .

Aplikasi pembunuh ditulis dalam lisp: emacs . Lisp akan memungkinkan Anda untuk memperluas emacs sesuka hati untuk melakukan hampir semua hal yang dapat Anda pikirkan yang mungkin dilakukan oleh seorang editor.

Tapi , Anda hanya harus belajar cadel jika Anda mau , dan Anda mungkin tidak pernah bisa digunakan di tempat kerja, tetapi itu masih mengagumkan.

Juga, saya ingin menambahkan: bahkan jika Anda menemukan tempat di mana lisp akan masuk akal, Anda mungkin tidak akan meyakinkan orang lain bahwa itu harus digunakan di java, c ++, c #, python, ruby, dll.

Justin Standard
sumber
@ Justin: Mungkin perlu dicatat bahwa inti emacs ditulis dalam C. Tapi itu hanya nit-picking - semua perintah ditulis dalam elisp.
Bernard
3
atau lebih tepatnya - sintaksis inti dari lisp umum adalah sederhana. defmacro memungkinkan perluasan sintaksis, dan beberapa makro bawaan (seperti defmacro) dapat menjadi sangat rumit; daftar lambda, backquotes bersarang, dll.
Aaron
Hampir adil untuk mengatakan bagian C emacs adalah kode lem.
Luka Ramishvili
Menurut manual referensi Emacs, "Sebagian besar perintah pengeditan di Emacs ditulis dalam Lisp; beberapa pengecualian dapat ditulis dalam Lisp tetapi menggunakan C sebagai gantinya untuk efisiensi." gnu.org/software/emacs/manual/html_mono/emacs.html#Intro
dpritch
25

Saya tidak bisa menjawab dari pengalaman langsung tetapi Anda harus membaca apa yang ditulis Paul Graham di Lisp . Adapun bagian "aplikasi pembunuh", baca Mengalahkan rata-rata .

Christian Lescuyer
sumber
2
+1. Jawaban ini harus menyebutkan Yahoo Stores, aplikasi web pertama, sebagian ditulis dalam bahasa Inggris. Mengutip Wikipedia: Pada 1998, Yahoo! Inc. membeli Viaweb untuk 455.000 saham Yahoo! saham, bernilai sekitar $ 49 juta, dan menamainya Yahoo! Toko.
Steven Lu
17

Saya memprogram di Lisp secara profesional selama sekitar satu tahun, dan itu pasti layak dipelajari. Anda akan memiliki kesempatan yang tak tertandingi untuk menghapus redundansi dari kode Anda, dengan bisa mengganti semua kode boilerplate dengan fungsi di mana mungkin, dan makro di mana tidak. Anda juga akan dapat mengakses fleksibilitas tak tertandingi pada saat runtime, menerjemahkan secara bebas antara kode dan data. Dengan demikian, situasi di mana tindakan pengguna dapat memicu kebutuhan untuk membangun struktur kompleks secara dinamis adalah tempat Lisp benar-benar bersinar. Penjadwal penerbangan maskapai populer ditulis dalam Lisp, dan ada juga banyak CAD / CAM di Lisp.

John dengan wafel
sumber
9

Jika Anda suka pemrograman, Anda harus belajar Lisp untuk kesenangan murni itu. XKCD dengan sempurna mengungkapkan pencerahan intelektual yang terjadi kemudian. Belajar Lisp bagi programmer adalah meditasi bagi bhikkhu Budha (dan saya maksudkan ini tanpa konotasi yang menghujat).

Konrad Rudolph
sumber
9

Lisp sangat berguna untuk membuat DSL kecil. Saya punya salinan Lisp dalam Kotak yang sedang berjalan di tempat kerja dan saya telah menulis DSL kecil untuk menginterogasi database SQL server dan menghasilkan lapisan data dll dalam C #. Semua kode pelat ketel saya sekarang ditulis dalam macro lisp yang menghasilkan C #. Saya menghasilkan HTML, XML, segala macam hal dengannya. Meskipun saya berharap bisa menggunakan Lisp untuk koding sehari-hari, Lisp dapat membawa manfaat praktis.

Phil Bennett
sumber
Saya menggunakan dotlisp.sourceforge.net/dotlisp.htm untuk ini.
Mark Hurd
5

Bahasa apa pun terlihat jauh lebih sulit ketika seseorang tidak menggunakan konvensi indentasi umum dari suatu bahasa. Ketika seseorang mengikuti mereka dari Lisp, orang melihat bagaimana itu mengekspresikan struktur pohon sintaksis cukup mudah (perhatikan, ini tidak cukup tepat karena pratinjau terletak sedikit; r harus sejajar dengan fns dalam argumen quicksort rekursif):

(defun quicksort (lis) 
  (if (null lis) 
      nil
      (let* ((x (car lis)) 
             (r (cdr lis)) 
             (fn (lambda (a) 
                   (< a x))))
         (append (quicksort (remove-if-not fn 
                                           r)) 
                 (list x)
                 (quicksort (remove-if fn 
                                       r))))))
John dengan wafel
sumber
1
Saya pikir ada kritik yang adil dalam apa yang Anda katakan. Saya hanya bermaksud mengatakan "itu terlihat jauh lebih sulit karena Anda telah mempresentasikannya, dan terlihat jauh lebih jelas seperti yang disajikan di sini". Saya pikir Anda harus setuju bahwa banyak bahasa terlihat jauh lebih membingungkan jika konvensi indentasinya tidak diikuti. Lebih jauh, jika kita membandingkan lekukan, katakanlah Java dan Lisp, saya akan mengatakan mereka umumnya membutuhkan tingkat pengetahuan yang sama tentang konstruksi dasar setiap bahasa untuk membuat indentasi mereka dengan benar. Tapi, itu adil, meskipun sepenuhnya subjektif, untuk mengatakan itu masih terlihat sulit.
John dengan wafel
1
Untuk membuatnya sedikit lebih sederhana, Anda dapat menggunakan standar letdan menggunakan defunpada awal fungsi untuk mendefinisikan fnkarena tidak berubah.
Aaron Robson
4
@FerretallicA Atas dasar apa Anda menentukan apakah sesuatu “mudah dibaca manusia” atau “menggambarkan diri sendiri”? Kesamaan dengan bahasa Inggris? Apakah bahasa Cina “mudah dibaca manusia”? Bagaimana dengan notasi matematika? Apakah “tidak mudah dibaca manusia”? Argumen semacam ini adalah omong kosong yang menjengkelkan, karena pesan tersembunyinya adalah: "Ini tidak seperti cara saya pertama kali belajar untuk bernalar."
3
Lebih mirip 'bantahan' Anda terdengar seperti "Whinge whinge". Cobalah tes mengendus bahasa pemrograman. Ambil seseorang yang belum pernah memprogram sebelumnya dan tunjukkan satu halaman kode VB dan satu halaman kode Lisp. Saya akan dengan senang hati bertaruh kacang kiri saya yang mana dari dua pengamat kasual akan lebih mudah untuk menarik pengamatan yang bermakna dari.
nathanchere
1
Saya ingin tahu apa yang dipikirkan oleh non-programmer orang Tionghoa, Jepang, Korea, Sumeria, Hindi, atau Arab tentang keinginan Anda yang kurang ajar untuk melepaskan testis Anda untuk sebuah argumen yang lancar.
4

Saya menemukan bahwa mempelajari bahasa baru, selalu memengaruhi gaya pemrograman Anda dalam bahasa yang sudah Anda kenal. Bagi saya itu selalu membuat saya berpikir dalam berbagai cara untuk memecahkan masalah dalam bahasa utama saya, yaitu Java. Saya pikir secara umum, itu hanya memperluas wawasan Anda dalam hal pemrograman.

dlinsin
sumber
Itu karena Anda seorang programmer yang baik. Pemrogram yang buruk, alih-alih memengaruhi keterampilan lama dengan pengetahuan baru, pikirkan dalam bahasa yang sudah dikenal saat menulis dalam yang baru. Tapi mengapa Anda menggunakan Java after lisp? :) Java paling sulit digunakan setelah Lisp, imo.
Luka Ramishvili
4

Jika Anda harus bertanya pada diri sendiri apakah Anda harus belajar lisp, Anda mungkin tidak perlu melakukannya.

Orang asing
sumber
8
Saya akan mengatakan yang sebaliknya: jika Anda sudah mengerti bahasa Inggris karena Anda memiliki pengalaman dengan bahasa yang sama maka mungkin tidak perlu. Jika Anda tidak mengerti apa yang ditawarkan lisp, maka Anda bisa mendapat manfaat dari paparan tersebut.
Tuan Fooz
@MrFooz tidak ada bahasa serupa yang dapat menghapus kebutuhan untuk mempelajari bagian lispy dari lisp. Fitur utama lisp tidak ditemukan dalam bahasa apa pun. Padahal kebanyakan.
Luka Ramishvili
Tergantung pada tujuan Anda. Jika Anda ingin mati, Anda tidak perlu bernafas. Tetapi itu tidak berarti bahwa Anda seharusnya tidak melakukannya.
mimoralea
4

Saya mengambil "kelas cadel" di perguruan tinggi pada tahun delapan puluhan. Meskipun grokking semua konsep yang disajikan di kelas, aku ditinggalkan tanpa apapun penghargaan untuk apa yang membuat besar cadel. Saya takut bahwa banyak orang melihat lisp hanya sebagai bahasa pemrograman lain, yang dilakukan oleh mata kuliah di perguruan tinggi bertahun-tahun yang lalu. Jika Anda melihat seseorang mengeluh tentang sintaksis lisp (atau kekurangannya), ada kemungkinan besar bahwa mereka adalah salah satu dari orang-orang yang telah gagal memahami kebesaran lisp. Saya adalah salah satu dari orang-orang itu untuk waktu yang sangat lama.

Tidak sampai dua dekade kemudian, ketika saya menyalakan kembali minat saya pada lisp, saya mulai "mendapatkan" apa yang membuat lisp menarik - bagi saya toh. Jika Anda berhasil mempelajari cadel tanpa pikiran Anda hancur oleh penutupan dan makro cadel, Anda mungkin telah melewatkan intinya.

fdesmet
sumber
Saya yang kedua itu. Saat ini saya sedang dalam perjalanan kedua saya ke Lisp, 5 tahun tidak sekolah. Satu istilah Lisp ketika Anda masih hijau mungkin tidak memiliki efek yang memadai - Saya ingat hanya berfokus pada metaprogramming, dan belum menghargai metaprogramming dan fleksibilitas.
Aaron
4

Mempelajari LISP / Skema mungkin tidak memberi Anda ruang aplikasi yang meningkat, tetapi itu akan membantu Anda lebih memahami pemrograman fungsional, aturannya, dan pengecualiannya.

Ini sepadan dengan investasi waktu hanya untuk mempelajari perbedaan keindahan dari enam fungsi murni bersarang, dan mimpi buruk dari enam fungsi bersarang dengan efek samping.

JT Hurley
sumber
4

Dari http://www.gigamonkeys.com/book/introduction-why-lisp.html

Salah satu mitos yang paling sering diulang tentang Lisp adalah bahwa itu "mati." Meskipun memang benar bahwa Common Lisp tidak digunakan secara luas seperti, katakanlah, Visual Basic atau Java, tampaknya aneh untuk menggambarkan bahasa yang terus digunakan untuk pengembangan baru dan yang terus menarik pengguna baru sebagai "mati." Beberapa kisah sukses Lisp baru-baru ini termasuk Viaweb karya Paul Graham, yang menjadi Yahoo Store ketika Yahoo membeli perusahaannya; Harga tiket pesawat dan sistem belanja ITA Software, QPX, digunakan oleh penjual tiket online Orbitz dan lainnya; Permainan Naughty Dog untuk PlayStation 2, Jak dan Daxter, yang sebagian besar ditulis dalam dialek Lisp khusus-domain Naughty Dog ditemukan bernama GOAL, yang kompilernya sendiri ditulis dalam Common Lisp; dan Roomba, penyedot debu robot otonom, yang perangkat lunaknya ditulis dalam L, subset Common Lisp yang kompatibel ke bawah. Mungkin yang lebih jelas adalah pertumbuhan situs Web Common-Lisp.net, yang menampung proyek open-source Common Lisp, dan jumlah kelompok pengguna Lisp lokal yang bermunculan dalam beberapa tahun terakhir.

krdluzni
sumber
4

"Lisp layak dipelajari untuk pengalaman pencerahan mendalam yang akan Anda miliki ketika Anda akhirnya mendapatkannya; pengalaman itu akan membuat Anda menjadi programmer yang lebih baik untuk sisa hari-hari Anda, bahkan jika Anda tidak pernah benar-benar menggunakan Lisp sendiri."

--Eric S. Raymond, "Bagaimana Menjadi Peretas"

http://www.paulgraham.com/avg.html

eric.christensen
sumber
3

Saya setuju bahwa Lisp adalah salah satu bahasa yang mungkin tidak pernah Anda gunakan dalam pengaturan komersial. Tetapi bahkan jika Anda tidak mengerti, mempelajarinya pasti akan memperluas pemahaman Anda tentang pemrograman secara keseluruhan. Sebagai contoh, saya belajar Prolog di perguruan tinggi dan sementara saya tidak pernah menggunakannya setelah itu, saya memberi saya pemahaman yang lebih besar tentang banyak konsep pemrograman dan (kadang-kadang) apresiasi yang lebih besar untuk bahasa yang saya gunakan.

Tetapi jika Anda akan mempelajarinya ... dengan segala cara, baca On Lisp

Adam Haile
sumber
Catatan kecil: Pada Lisp bukan pengantar yang cocok untuk Lisp, baca sesuatu yang lain terlebih dahulu. Saya merekomendasikan Praktis Common Lisp.
Luís Oliveira
3

Lisp pembelajaran akan menempatkan Javascript dalam cahaya yang sama sekali berbeda! Lisp benar-benar memaksa Anda untuk memahami kedua rekursi dan keseluruhan "fungsi sebagai objek kelas satu" -paradigma. Lihat Crockfords artikel bagus tentang Skema vs Javascript . Javascript mungkin adalah bahasa yang paling penting saat ini, jadi memahaminya dengan lebih baik sangat bermanfaat!

Erlend Halvorsen
sumber
1
Bahasa yang paling penting? Saya kira tidak, Tuan.
TraumaPony
7
Yah, ini tersedia pada hampir semua perangkat yang memiliki browser web (dan mungkin beberapa yang tidak), sejauh bahasa untuk menjalankan aplikasi pengguna akhir, itu mungkin memiliki penetrasi tertinggi dari semua bahasa pemrograman di planet ini . Jelas Anda bisa memiliki pendapat yang sama sekali berbeda tentang apa yang penting. Apakah akan digunakan untuk menyembuhkan kanker? Mungkin tidak. Tapi, suka atau tidak, itu akan menjadi salah satu batu penjuru pengembangan aplikasi (web) untuk tahun-tahun mendatang.
Erlend Halvorsen
1
Saya pergi dengan cara yang sama! Meskipun saya sudah menggunakan fitur-fitur fungsional dan prototyping Javascript, setelah belajar Lisp Javascript adalah bahasa baru bagi saya.
Luka Ramishvili
3

Gimp's Script-Fu sangat menarik. Itu adalah aplikasi photoshop-killer.

Peter Turner
sumber
3

Oke, saya mungkin aneh tapi saya benar-benar tidak suka esai Paul Graham bahwa banyak & tentang Lisp adalah buku yang benar-benar kasar jika Anda belum memiliki pemahaman tentang Common Lisp. Sebaliknya, saya akan mengatakan pergi untuk Siebel's Practical Common Lisp . Sedangkan untuk "killer-apps", Common Lisp tampaknya menemukan tempatnya di toko-toko khusus, seperti ITA , jadi sementara tidak ada aplikasi yang identik dengan CL seperti halnya Rails untuk Ruby, ada beberapa tempat di industri yang menggunakannya jika Anda melakukannya. sedikit menggali.

C Hogg
sumber
2

Sintaksis yang rumit? Keindahan lisp adalah ia memiliki sintaks yang sangat sederhana. Ini hanya daftar, di mana setiap elemen daftar dapat berupa daftar lain atau tipe data dasar.

Ini layak dipelajari karena cara itu meningkatkan kemampuan pengkodean Anda untuk memikirkan dan menggunakan fungsi sebagai tipe data lainnya. Ini akan meningkatkan pada cara Anda kode dalam bahasa imperatif dan / atau berorientasi objek karena akan memungkinkan Anda untuk lebih fleksibel secara mental dengan bagaimana kode Anda disusun.

Antonio Haley
sumber
2

Untuk menambah jawaban lain:

Karena kursus SICP (videonya tersedia di sini ) luar biasa: mengajari Anda Canggung dan banyak lagi !

Tiram
sumber
2

Aplikasi pembunuh? Franz Inc. memiliki daftar panjang kisah sukses , tetapi daftar ini hanya mencakup pengguna AllegroCL ... Mungkin ada yang lain. Favorit saya adalah kisah tentang Anjing Nakal , karena saya adalah penggemar berat game Crash Bandicoot.

Untuk mempelajari Common Lisp, saya akan merekomendasikan Praktis Common Lisp . Ini memiliki pendekatan langsung yang setidaknya bagi saya membuatnya lebih mudah daripada buku-buku lain yang pernah saya baca.

Vetle
sumber
2

Anda dapat menggunakan Clojure hari ini untuk menulis tes dan skrip di atas Java VM. Sementara ada bahasa Lisp lain yang diimplementasikan pada JVM, saya pikir Clojure melakukan pekerjaan terbaik untuk mengintegrasikan dengan Java.

Ada saat-saat ketika bahasa Jawa sendiri menghalangi penulisan tes untuk kode Java (termasuk "pemrograman komersial tradisional"). (Saya tidak bermaksud bahwa sebagai dakwaan terhadap Jawa - bahasa lain menderita masalah yang sama - tetapi ini adalah fakta. Karena topiknya, bukan Jawa, saya tidak akan menjelaskannya. Silakan memulai topik baru jika seseorang ingin mendiskusikannya.) Clojure menghilangkan banyak hambatan itu.

Bill Smith
sumber
2

Lisp dapat digunakan di mana saja Anda menggunakan pemrograman tradisional. Itu tidak jauh berbeda, hanya saja lebih kuat. Menulis aplikasi web? Anda dapat melakukannya di Lisp, menulis aplikasi desktop? Anda dapat melakukannya di Lisp, apa pun, Anda mungkin dapat melakukannya di Lisp, atau Python, atau pemrograman generik lainnya (ada beberapa bahasa yang hanya cocok untuk satu tugas).

Rintangan terbesar mungkin adalah penerimaan dari atasan, rekan kerja, atau pelanggan Anda. Itu sesuatu yang harus kamu kerjakan bersama mereka. Memilih solusi pragmatis seperti Clojure yang dapat memanfaatkan basis instalasi infrastruktur Java saat ini, dari JVM ke perpustakaan, mungkin dapat membantu Anda. Juga, jika Anda memiliki program Java, Anda dapat melakukan arsitektur plug-in dan menulis plug-in Clojure untuk itu dan akhirnya menulis setengah kode Anda di Clojure.

Pablo
sumber
1

Bukan alasan tetapi (sepele) AutoCAD memiliki dukungan runtime LISP & DCL. Ini adalah cara yang nyaman untuk menulis makro kompleks (termasuk otomatisasi ActiveX) jika Anda tidak ingin menggunakan VBA atau C ++ atau .NET SDKs, atau jika ekspresi DIESEL tidak memotongnya.

Banyak fungsi AutoCAD sebenarnya adalah rutinitas LISP.

CAD cowok
sumber
1

Ini adalah topik yang saya sendiri telah pertimbangkan untuk sementara waktu tetapi saya belum benar-benar mengambil keputusan, karena waktu yang biasa adalah masalah utama ...;)

Dan karena saya tidak dapat menemukan tautan ini di dalam posting ini, saya menambahkannya untuk kepentingan umum:

Kisah Sukses dan Kegagalan: Lisping di JPL

Kisah sukses yang benar-benar mengesankan: Lisp digunakan di perusahaan Orbitz

Perbandingan dan analisis apakah akan menggunakan Lisp sebagai ganti Java: Lisp sebagai Alternatif untuk Java

PPS
sumber
0

Sintaks tidak relevan, keterbacaan tidak!

kokos
sumber
0

Aplikasi pembunuh? Mesin pencari penerbangan oleh ITA Software adalah satu.

Adapun "mengapa", itu kemungkinan besar akan membuat Anda menjadi pengembang yang lebih baik dan sangat tidak mungkin membuat Anda menjadi lebih buruk. Namun, itu mungkin membuat Anda lebih suka dialek bahasa Inggris dari bahasa lain.

Vatine
sumber