мне нужны шаги для запуска кода на языке clojure содержит графический интерфейс в Java - PullRequest
1 голос
/ 19 ноября 2010

У меня есть большая проблема, мой доктор хочет, чтобы я сделал калькулятор, используя новый язык (clojure), но я ничего не знаю об этом, я прочитал некоторую информацию с www.clojure.org, но у меня все еще есть проблема, как сохранить код в файле, чтобы запустить его в другой раз, и мне нужен путь, как подключить Java к Clojure, я нашел этот код:

(ns rayne.main 
  (:gen-class) 
  (:import (javax.swing JFrame JTextField JButton JOptionPane) 
           (java.awt.event ActionListener) 
           (java.awt GridLayout))) 

(def numbers (ref [])) 
(def times-clicked (ref 0)) 

(defn calc [nseq op] 
  (let [n1 (first nseq) 
       n2 (last nseq)] 
  (cond 
     (= op "+") (+ n1 n2) 
     (= op "*") (* n1 n2) 
     (= op "-") (- n2 n1) 
     (= op "/") (/ n1 n2)))) 

(defn add-op-button [op text button] 
   (.addActionListener button 
    (proxy [ActionListener] [] 
      (actionPerformed [e] 
      (dosync 
       (ref-set times-clicked (inc @times-clicked)) 
       (if (= @times-clicked 2) 
         (do 
         (let [result (.toString (calc @numbers op)) 
               result2 (read-string result)] 
           (.setText text result) 
           (ref-set numbers []) 
           (ref-set times-clicked 0))) 
       (do 
         (ref-set numbers (conj @numbers (read-string (.getText text)))) 
         (.setText text "")))))))) 

(defn -main [] 
  (let [frame (JFrame. "Calculator") 
        add-button (JButton. "+") 
        sub-button (JButton. "-") 
        mul-button (JButton. "*") 
        div-button (JButton. "/") 
        clr-button (JButton. "Clear") 
        text-field (JTextField.)] 
    (add-op-button "+" text-field add-button) 
    (add-op-button "-" text-field sub-button) 
    (add-op-button "*" text-field mul-button) 
    (add-op-button "/" text-field div-button) 
(doto frame 
   (.setLayout (GridLayout. 1 5)) 
  (.add text-field) 
  (.add add-button) 
  (.add sub-button) 
  (.add mul-button) 
  (.add div-button) 
  (.setSize 500 100) 
  (.setVisible true)))) 

поэтому, когда я пытаюсь проверить это, я не знаю, как это работает. пожалуйста, мне нужен кто-то, чтобы помочь мне в этой проблеме и пришлите мне ссылку для установки программы clojure для выполнения такого файла. спасибо за все

Ответы [ 2 ]

4 голосов
/ 19 ноября 2010

Звучит как отличная причина, чтобы повеселиться на новый язык.

для начала работы с новыми объектами clojure инструмент leiningen может быстро приступить к компиляции и запуску кода. (Я предполагаю, Mac или Linux здесь)

  • установка leiningen
  • lein новое имя проекта
  • поместите ваш код в файл имя-проекта / src / ... /core.clj
  • lein uberjar
  • java -jar имя-файла-jar
  • повтори, взломай и повеселись!

Leiningen также может запустить repl для вас, который ускорит ваши итерации и хорошо интегрируется (через slime / swank) с emacs.

вот хороший урок по leiningen

1 голос
/ 21 ноября 2010

В Clojure.org есть хороший раздел под названием Getting Started , который ... о начале работыОт получения ZIP-файла clojure до отладки и профилирования.Очень, очень простой.

Также есть ссылки на более продвинутые ресурсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...