2017-08-29 15 views
1

私は、暗号を返すためにシードとメッセージを受け取る関数encodeを持っています。core.cljs [reagent]でclojure関数が機能しない、またはクラッシュする理由を教えてください。

私の問題は、core.cljsファイルで試薬を使用しようとしたときに、関数が黙って失敗していることです(空の文字列を返す)。

私は何かをしている(またはアプローチ)間違っているので、任意の迅速なポインタが高く評価されるように感じる。

(prn (encode "testing" "test"))   ;;> "" 
(prn (type encode))      ;;> #object[Function] 
(prn (type (encode "testing" "jordan"))) ;;> #object[String] 

例えば、私は期待していました: "mikmbry" from (encode "testing" "test")。すべてがreplで動作しますが、core.cljsで黙って失敗します。

お時間をいただきありがとうございます。

+1

は、あなたの 'encode'の実装を共有してもらえ 関数? –

+0

ここにあります:[gist](https://gist.github.com/mohamedhayibor/45423dfe60c51a8f22a80ab056726541)。 –

答えて

4

コードには、ClojureScriptの文字列を処理する際の問題があります。

JavaScriptには文字型がなく、ClojureScriptは独自の型を導入していません。

:あなたはあなたのJavaScriptの String.charCodeAt(index)を使用する必要がある文字のASCII番号の値を取得する必要がある場合は

(seq "ABC") 
;; => ("A" "B" "C") 

:あなたが順序として文字列を扱うときその代わりに、個々の要素は、1文字の長い文字列になります

(.charCodeAt "A" 0) 
;; => 65 
は、使用可能な文字列に(ASCIIコードなど)の数を変換するには String.fromCharCode

(js/String.fromCharCode 65) 
;; => "A" 
関連する問題