2010-11-18 8 views
1

Büyük bir sorunum var doktorum bana yeni bir hesap makinesi (clojure) kullanarak hesap yapmamı istiyor ama bu konuda bir şey bilmiyorum biraz bilgi oku böylececlojure dilinde bir kod çalıştırmak için adımlara gereksinim var java'da GUI içerir

(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)))) 

: ama hala nasıl başka bir zaman çalıştırmak için bir dosyada kodu kaydetmek için bir sorun var ve ben Clojure için java nasıl bağlanacağını yola ihtiyacım www.clojure.org dan ben bu kodu bulundu Bunu test etmeye çalışıyorum nasıl çalıştığını bilmiyorum. lütfen bana bu problemde yardımcı olacak bir tane lazım ve böyle bir dosyayı yürütmek için bir clojure programı yüklemek için bana bir link gönderin. thank için tüm

+1

Biçimlendirmek için dört boşluk girintile doğru biçimlendirmek için –

+0

girintisine kodu gir –

+0

Soruyu anlayamadım, soruları anlayan biri İngilizce'yi düzenleyebilir mi? – Zubair

cevap

4

Eğlenceli, yeni bir dile yaslanmak için harika bir neden gibi geliyor. leiningen aracını kullanmaya başlamak için

, çok hızlı bir şekilde derleme ve kod çalıştırma noktasına erişebilirsiniz. yüklemek leiningen

  • Lein yeni proje adı

    • (i mac ya da burada linux varsayarak)
    • proje adına kodunuzu koymak/src/... /core.clj
    • dosyası
    • lein uberjar
    • java-jar dosyası-adı-dosyası
    • tekrarlayın, kesmek ve biraz eğlenin!

    Leiningen, yinelemenizi hızlandıracak ve emacs ile iyi bir şekilde (slime/swank yoluyla) bütünleşecek bir replik de başlatabilir.

    here is a good tutorial on leiningen

  • +0

    yardımlarınız için teşekkürler, ama windows işletim sisteminde çalışan bir programa ihtiyaç duyduğum sorun lunix veya sun değil: SI, windows işletim sistemi olmayan lunix çalışmalarını düşünün: (sağ? – amani

    1

    Clojure.org hakkında ... başlarken Getting Started adında güzel bir bölüm vardır. Clojure zip dosyasından hata ayıklama ve profil oluşturmaya kadar. Çok, çok basit.

    Ayrıca, daha gelişmiş kaynaklara bağlantıları vardır.

    +0

    çok teşekkürler, bu sayfaya giriyorum ama yapmadım.) clojure zip dosyası ile ne anlama geldiğini biliyor musunuz? Bana yardım edebilir misin – amani

    +0

    Buradan indirebilirsiniz: http://clojure.org/downloads. En son kararlı clojure sürümünün asıl linki http: // github .com/downloads/Clojure/Clojure/clojure-1.2.0.zip – Allen

    İlgili konular