2016-10-31 12 views
1

私の関数をreplで定義すると、期待どおりに機能します。名前空間(つまりアプリ)にドロップしてreplを再読み込みすると、そのキーワードにnamespaceコンポーネントが失われます。私はここで何が欠けているのか分かりません。Clojure動的キーワードビルダー関数は予期しない結果を返します

;; Repl 
(defn repl-keyword-gen [k str] (keyword (name k) str)) 

(repl-keyword-gen :test "example") 
;;=> :test/example 


;; App - example.core 
(defn app-no-sym-keyword-gen [str] (keyword "test" str)) 
(defn app-with-sym-keyword-gen [k str] (keyword (name k) str)) 

(app-no-sym-keyword-gen "example") 
;;=> :test/example 

(app-with-sym-keyword-gen :test "example") 
;;=> :example <----- Not sure about this one right here 

このキーワードビルダーが異なる結果を返す理由についての洞察と説明に感謝します。

REPL Repl_screenshot

APP はApp_screenshot

編集 - スクリーンショット

+0

REPLを再起動し、問題のコードを貼り付けて問題なく動作することを確認します正しい。あなたは、 'app-with-sym-keyword-gen'を正しく定義していないかもしれません(またはREPLの異なるバージョンでそれを上書きしたかもしれません)。 –

+0

'user =>(ns example.core)を再現できません nil example.core =>(defn app-no-sym-keyword-gen [str](キーワード" test "str)) # 'example.core/app-no-sym-keyword-gen example.core =>(キーワード(名前k)str)) # 'example.core/app-with- sym-keyword-gen example.core =>(app-no-sym-keyword-gen "例") :test/example example.core =>(app-with-sym-keyword-gen:test "example ") :test/example' – m0skit0

+0

サーバが起動したらIntellij CursiveのNREPLサーバに接続します。すべてを再開しました。 – nrako

答えて

2

私は自分の環境に問題があるかもしれないと思います。

は私が lein runプレーン古いを用いて試験し、名前空間キーワードました:

(ns clj.core 
    (:require 
    [tupelo.core :as t] 
    [clj-time.core :as tm] 
)) 
(t/refer-tupelo) 

;; App - example.core 
(defn app-no-sym-keyword-gen [str] (keyword "test" str)) 
(defn app-with-sym-keyword-gen [k str] (keyword (name k) str)) 

(spyx (app-no-sym-keyword-gen "example")) 

(spyx (app-with-sym-keyword-gen :test "example")) 

(defn -main [& args] 
    (println "-main")) 

結果:

~/clj > lein run  
(app-no-sym-keyword-gen "example") => :test/example 
(app-with-sym-keyword-gen :test "example") => :test/example 
-main 

が仕事に(spyx ...)一部を取得するには、あなたのproject.cljでこれを必要とします:

:dependencies [ 
    [tupelo "0.9.9"] 
    ... 
+0

それを修正する方法がわかりませんが、答えを感謝します。時間をとっていただきありがとうございます。 – nrako

関連する問題