2013-02-24 16 views
14

Tôi xin lỗi vì tôi mới sử dụng Clojure. Tôi đã tìm thấy không có nhiều trong cách của dụng cụ hoặc hướng dẫn cho thế giới Clojure mà tôi đã có thể tiêu hóa cho đến nay, vì vậy tôi đã tải về Light Table (http://www.lighttable.com/) mà âm thanh như nó sẽ làm cho nó dễ dàng hơn. Tôi đang sử dụng Windows 7 64-bit và giao diện người dùng Bảng Light cơ bản dường như đang hoạt động.Lighttable và Quil

Để thử nghiệm thêm với Bảng ánh sáng/Clojure, tôi cũng đã tải xuống thư viện vẽ Clojure Quil (https://github.com/quil/quil), nhưng sau khi hướng dẫn Bảng ánh sáng kết nối với \ quil-master \ project.clj và sau đó mở và thực thi các tệp từ \ quil-master \ example (chẳng hạn như automata.clj hoặc graphics.clj), Bảng Ánh sáng tạo ra những gì tôi cho là biểu tượng "suy nghĩ" màu lam đang quay mà bị kẹt hoặc cuối cùng kết thúc bằng "nil" hoặc "java.lang. Môn Toán".

Chỉ "example2.clj" có vẻ hoạt động (mặc dù không phải luôn luôn) ở chỗ nó (thường) bật lên một cửa sổ có viên kim cương đổi màu. Tôi cần phải làm gì để làm cho các ví dụ Quil khác hoạt động trong Bảng Light?

(Trên một mặt lưu ý, tôi cũng đã tải về Mire (một dự án Clojure trên Github), nhưng nó cũng sẽ không chạy ở tất cả với Bảng Light.)

+3

Tôi không biết mọi người, chúng ta có nên tha thứ cho anh ta vì là người mới không? Sau khi tất cả, phần còn lại của chúng tôi đã đi thẳng từ sự thiếu hiểu biết để hoàn thành làm chủ, và tất nhiên bây giờ biết tất cả mọi thứ. Cá nhân, tôi không thể chịu nổi khi một quan điểm mới mẻ đi vào, đặc biệt là với một câu hỏi thú vị và được đặt đúng! –

Trả lời

6

Câu trả lời này đã cho LightTable 0.2. 0. Tôi chưa thử 0.3.0 mới.

Thật tuyệt vời khi thử và chọn LightTable và Quil. Tôi nghĩ rằng cơn đau chủ yếu là do vấn đề về thịt gà và trứng.

  • LightTable giả định một số kiến ​​thức về clojure (không liên quan đến quản lý dự án) và không cung cấp repl "chuẩn", mà là giường thử nghiệm mang phong cách tương tác hơn.
  • Quil giả định sự thoải mái trong môi trường thay thế clojure chuẩn và đang gói rất nhiều sự phức tạp của một dự án java cơ bản (Đang xử lý).
  • Ngoài ra toàn bộ mục đích của Quil là tạo ra "tác dụng phụ" (toàn bộ màn hình đồ họa khác) và LightTable đang cố gắng giúp bạn làm việc với các hàm và giá trị trả về của chúng chứ không phải tác dụng phụ của hàm.

Nếu bạn đang kết nối để quil như một dự án, mở example2.clj và thực hiện nó (Ctrl Shift Enter) và nhận được một màu xanh nhạt "nil" - Xin chúc mừng bạn có một hệ thống làm việc! (Ít nhất tôi có thể sao chép chính xác hành vi tương tự và ví dụ dường như hoạt động). Lần đầu tiên bạn thực hiện việc này có thể mất một lúc để LightTable tải xuống tất cả các phụ thuộc của Quil (có thể lý do LightTable xuất hiện treo - hoặc có thể Bảng Light và Quil có lỗi tương tác mà tôi chưa kích hoạt.)

"nil" đó là giá trị trả về do Bảng ánh sáng thực thi tệp (trong ngữ cảnh của dự án đang chạy) (xem chú thích cuối trang). Một nơi nào đó (có lẽ ẩn đằng sau một bảng ánh sáng toàn màn hình) một cửa sổ mới sẽ được tạo ra với ví dụ đang chạy.

Giá trị "java.lang.Math" của việc thực thi automata.clj cũng phù hợp với những gì tôi thấy. Đây là mẹo để tạo ra một cuộc gọi đến defsketch mà example2.clj đã làm nội tuyến nhưng automata.clj thì không.

Bạn có thể tạo ra các phác thảo bằng cách gọi hàm run-rule:

Sau khi thực hiện các tập tin automata.clj (để lấy tất cả các định nghĩa hàm được tải), thêm dòng sau vào cuối tệp trong trình chỉnh sửa:

(run-rule 101 {:width 100 :height 100 :scale 4}) 

Đặt con trỏ sau dấu đóng và thực thi biểu mẫu bằng Ctrl-Enter. Một lần nữa một cửa sổ mới (có thể ẩn đằng sau một số cửa sổ khác - thử chuyển đổi tác vụ bằng Alt-Tab) sẽ mở chạy bản demo automata.

Với Bảng ánh sáng kết nối với dự án quil và automata.clj đã đánh giá bạn cũng có thể có được hiệu quả tương tự bằng cách mở một "instarepl" và gõ:

(clj-automata.core/run-rule 101 
         {:width 100 :height 100 
         :scale 4}) 

Thử chỉnh sửa các giá trị và nhìn thấy những gì xảy ra. (Một lần nữa toàn bộ bản chất của Quil là phụ ảnh hưởng làm cho điều này không hoàn toàn như vậy tao nhã trong LightTable nhưng có vẻ như để làm việc.)


Footnote:

Tôi không phải là rất quen thuộc với LightTable. Tôi đã có thể mong đợi ánh sáng màu xanh là kết quả của việc đánh giá các hình thức cuối cùng trong tập tin nhưng điều này dường như không phải là trường hợp. Sử dụng Cntl-Enter trên dòng cuối cùng cho thấy "# 'example2/example2" not "nil". Tôi cũng không quen thuộc với Quil và defsketch là macro không phải là chức năng thông thường nên có thể đó là tương tác một cách kỳ lạ với LightTable.

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