2008-08-13 32 views
14

Tôi đã muốn dạy bản thân mình Lisp một lúc. Tuy nhiên, tất cả các thông dịch viên mà tôi đã nghe nói liên quan đến một số hương vị của emacs. Có bất kỳ thông dịch dòng lệnh, như vậy tôi có thể gõ này vào dòng lệnh:Phiên dịch Lisp/Scheme không có Emacs?

lispinterpret sourcefile.lisp

giống như tôi có thể chạy perl hoặc python.

Trong khi tôi cũng muốn trở nên quen thuộc hơn với Emacs (nếu không được thất vọng khi tôi làm việc với ai đó sử dụng Emacs), tôi thà học hỏi Emacs từ việc học Lisp.

Chỉnh sửa: Tôi thực sự muốn theo dõi SICP sử dụng Đề án, do đó, câu trả lời về Đề án sẽ hữu ích hơn. Tôi không quen với sự khác biệt.

Trả lời

6

Thanh toán CLISP wiki-link tức là. được sử dụng bởi Paul Graham

Direct link

+0

clisp là đặc biệt tốt để sử dụng tương tác khi biên dịch với ncurses hỗ trợ (TAB hoàn thành bash phong cách) lấy tài liệu từ hyperspec, vv – dsm

+3

Nếu với "tức là". bạn có nghĩa là "tức là": có nghĩa là "id est" (bằng tiếng Anh: "đó là"). Tôi nghĩ rằng bạn muốn nói "ví dụ" (ví dụ: gratia exempli =). – Svante

1

Bạn hãy thử Allegro CL từ http://www.franz.com/?

+0

với giá $ 599? Một chút để chi tiêu cho việc học, phải không? – crashmstr

+1

@crashmstr: Allegro có phiên bản dùng thử miễn phí nên hoàn toàn phù hợp nếu bạn muốn học ngôn ngữ đó. – Pillsy

13

Bạn cũng có thể thử DrScheme, mà trong khi không hẳn là một thông dịch viên độc lập, không Emacs :)

Đó là cơ bản một IDE đơn giản mà có một khu vực để gõ mã có thể được thực hiện như một tập tin, và thì một vùng khác là trình thông dịch đang chạy mà bạn có thể tương tác với.

(Ngoài ra, tìm ra podcast UC Berkeley CS61A và lắng nghe họ, cũng như đọc SICP)

+1

Nếu bạn đang sử dụng PLT với SICP: http://www.neilvandyke.org/sicp-plt/ –

1

@Nathan: Tôi đã upmodded các liên kết Lisp phổ biến, bởi vì bạn hỏi về Lisp (đặc biệt là với tham chiếu đến Emacs Lisp). Tuy nhiên, Common Lisp rất khác với Scheme. Một chương trình được viết cho một không có khả năng chạy trên một chương trình khác.

Như bạn đã đề cập, SICP là dành cho học tập Đề án, không phải Lisp (hoặc ít nhất, không phải là Lisp thường và không phải là Emacs Lisp). Có một số chồng chéo trong các nguyên tắc, tuy nhiên bạn không thể chỉ đơn giản là cắt và dán mã từ SICP và mong đợi nó chạy trên bất kỳ hệ thống Lisp hay Emacs Common Lisp nào. :-)

0

Một phương ngữ tốt khác của lisp là cmucl. Họ từng thích khoe khoang về việc trở thành "lisp" nhanh nhất.

2

IDE được sử dụng rộng rãi nhất cho Common Lisp, đặc biệt là trong tập con phần mềm miễn phí của cộng đồng, trên thực tế là SLIME, chạy trên Emacs. Bạn có thể sử dụng bất kỳ trình biên dịch CL nào bạn thích và gọi các tệp nguồn Lisp theo cách bạn mô tả, nhưng nếu bạn làm điều đó, bạn sẽ không tận dụng được nhiều tính năng động của Lisps hữu ích trong khi phát triển ứng dụng của bạn.

Tôi khuyên bạn nên xem SLIME demonstration video này để xem ý tôi là gì, mặc dù có thể hơi lỗi thời vào thời điểm này.

Nếu vấn đề là bạn (nghĩ rằng bạn) không thích Emacs, tôi nghiêm túc đề nghị bạn cố gắng tìm hiểu nó. Nghiêm túc. Không, thực sự, ý tôi là thế. Tuy nhiên, có các lựa chọn thay thế, chẳng hạn như các IDE được cung cấp bởi các triển khai Lisp thương mại như AllegroLispworks (các bản dùng thử miễn phí) hoặc một trình cắm thêm Eclipse có tên là Cusp.

5

Tôi thường viết kịch bản shell lisp mà bắt đầu với dòng này:

#/usr/bin/CLISP

Sau đó, bạn thậm chí không cần phải gõ "lispinterpret" trên dòng lệnh. Chỉ cần đánh dấu tập lệnh thực thi và chạy trực tiếp.

1

Không có "thông dịch viên" yêu cầu emacs.

Ngoài ra, emacs có thể chạy elisp một cách không đầu.

3

Nếu bạn đang tìm kiếm Đề án làm việc với SICP, hãy xem tại MIT GNU Scheme/

http://groups.csail.mit.edu/mac/projects/scheme/

http://www.gnu.org/software/mit-scheme/index.html

+0

MIT/GNU Scheme sử dụng một thông dịch viên giống như Emacs. –

+0

Trình soạn thảo Edwin đi kèm giống như Emacs và REPL có một số lệnh giống như Emacs cho [gián đoạn] (http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-user/Interrupting.html# Gián đoạn), nhưng đó không phải là tất cả. Với MIT-Scheme, anh * có thể * học Scheme mà không cần học Emac. – crashmstr

4

Hầu hết các thông dịch viên chương trình mà tôi quen thuộc đều có thể chạy từ dòng lệnh. (Phần lớn danh sách dưới đây được trích xuất từ ​​bảng so sánh tại trang Scheme Implementation Choices của Alexey Radul. Có một danh sách mở rộng hơn tại schemewiki nhưng trang đó không cung cấp cú pháp gọi lệnh ngay lập tức.)

Dưới đây là cách bạn chạy một số triển khai tại cửa sổ dòng lệnh:

+0

Đôi khi những thay đổi này có "biên tập dòng" rất xấu. Đánh vào mũi tên trái và nhận được^[[D là khủng khiếp. Đối với những trường hợp này, bạn có thể sử dụng rlwrap, kết thúc tốt đẹp chương trình với sự hỗ trợ dòng đọc (chạy nó với 'rlwrap '). Cài đặt readline của bạn (~/.inputrc file) sẽ có hiệu lực, vì vậy bạn thậm chí có thể sử dụng chế độ vi của readline nếu bạn muốn. – spelufo

Các vấn đề liên quan