2013-02-24 12 views
14

Przepraszam, że jestem nowy w Clojure. Zauważyłem, że nie ma zbyt wiele narzędzi lub samouczków dla świata Clojure, które do tej pory mogłem przetrawić, więc pobrałem Light Table (http://www.lighttable.com/), co brzmi tak, jak powinno to ułatwić. Jestem na 64-bitowym Windows 7 i wydaje mi się, że podstawowy interfejs tablicy świetlnej działa.Lighttable and Quil

Aby spróbować dalej eksperymentować z Light Table/Clojure, pobrałem także bibliotekę rysunków Clojure Quil (https://github.com/quil/quil), ale po poleceniu Light Table, aby połączyć się z \ quil-master \ project.clj, a następnie otwierając i wykonując różne pliki z \ quil-master \ examples (np. automata.clj lub graphics.clj), Light Table produkuje to, co zakładam, jest obracającą się niebieską ikoną "myślenia", która utknie lub w końcu kończy się na "zero" lub "java.lang". Matematyka ".

Wydaje się, że tylko "example2.clj" działa (choć nie zawsze), ponieważ (zwykle) wyskakuje okno z diamentem zmieniającym kolor. Co muszę zrobić, aby te inne przykłady Quilów działały w Light Table?

(Na marginesie, mam również pobrać Mire (kolejny projekt Clojure na Github), ale to też nie będzie działać w ogóle z Light Table.)

+3

Nie znam ludzi, czy powinniśmy mu wybaczyć, że jest nowy? W końcu reszta z nas poszedł prosto z ignorancji, aby opanować mistrzostwo i oczywiście teraz wszystko wie. Osobiście nie zniosę tego, gdy pojawi się świeża perspektywa, zwłaszcza z ciekawym i dobrze postawionym pytaniem! –

Odpowiedz

6

Ta odpowiedź była dla LightTable 0,2. 0. Jeszcze nie próbowałem nowego 0.3.0.

Ma sens, aby spróbować wybrać LightTable i Quil. Myślę, że ból jest spowodowany głównie problemem kurczaków i jaj.

  • LightTable zakłada pewną wiedzę Clojure (przynajmniej Jeśli chodzi o zarządzanie projektami) i nie stanowią „standard” repl, ale raczej jest test-bed dla jeszcze bardziej interaktywny styl pracy.
  • Quil uzyskuje wygodę w standardowym środowisku replikacji typu clojure i owija dużą część złożonego projektu Java (Przetwarzanie).
  • Celem Quil jest również generowanie "efektów ubocznych" (innych wyświetlaczy graficznych), a LightTable próbuje pomóc w pracy z funkcjami i ich wartościami zwracanymi, a nie efektami ubocznymi funkcji.

Jeśli łączysz się z quilem jako projektem, otwierając example2.clj i wykonując go (Ctrl Shift Enter) i otrzymując jasnoniebieski "zero" - Gratulacje masz działający system! (Przynajmniej mogę zduplikować dokładnie to samo zachowanie i przykład wydaje się działać).

Pierwszy raz zrobisz to może potrwać do LightTable pobrać wszystkie zależności Quil jest (być może dlatego LightTable ukazał się powiesić - czy może Światło Stół i Quil mieć problem interakcji mam jeszcze wywołać.)

To "zero" jest wartością zwracaną wynikającą z Light Table, która wykonuje plik (w kontekście uruchomionego projektu) (patrz przypis). Gdzieś (być może ukryty za pełnoekranową tablicą świetlną) powinno zostać utworzone nowe okno z uruchomionym przykładem.

Wartość "java.lang.Math" wykonywania pliku automata.clj jest również zgodna z tym, co widzę. Tutaj polega na wygenerowaniu wywołania na defsketch, które zostało wykonane przez example2.clj, ale plik automatata.clj nie jest.

Można utworzyć szkic wywołując funkcję run-rule:

Po wykonaniu automatów pliku.CLJ (aby uzyskać wszystkie definicje funkcji załadowany) dodać następujący wiersz na końcu pliku w edytorze:

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

Umieść kursor po paren zamknięcia i wykonać jeden formularz z Ctrl-Enter. Znowu nowe okno (prawdopodobnie ukryte za jakimś innym oknem - spróbuj przełączania zadań za pomocą Alt-Tab) powinno otworzyć uruchomione demo automatów.

światłem tabeli związanej z projektem Quil i automata.clj już oceniana można również uzyskać ten sam efekt, otwierając „instarepl” i wpisując:

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

Spróbuj edycji wartości i widząc, co się dzieje. (Znowu cała natura Quil jest side-dokonywaniu sprawia, że ​​to nie całkiem tak elegancki w LightTable ale wydaje się działać.)


Przypis:

nie jestem bardzo obeznany z LightTable. Spodziewałbym się, że jasnoniebieski będzie wynikiem oceny ostatniego formularza w pliku, ale wydaje się, że tak nie jest. Użycie Cntl-Enter w ostatnim wierszu pokazuje "#" example2/example2 "not" zero ". Nie jestem również bardzo zaznajomiony z Quilem i defsketch jest makro nie zwykłą funkcją, więc może to oddziałuje w dziwny sposób z LightTable.