2016-07-22 6 views
0

文字列内のすべての文字をどのように調べることができないのですか。Erlangで文字列を再帰的に実行する簡単な例

"function(){var a = 10; var b = 5; return a + b;}". 

は、今私は、文字列によって文字を通じて「サイクル」にしたいし、その値に応じて何かをするように私は、文字列を持っています。 lexme("some string here").として実行している間、ここで

は、動作しない私のコードです:

lexme(S) -> 
    lexme(S, 1). 

lexme([H | T], _) -> 
    io:fwrite("~p~n", [H]), 
    T. 
+0

どのように動作しませんか?それはどのような結果をもたらしますか?あなたはどんな結果を望んでいますか? – CoderDennis

+0

私はそれぞれのキャラクターと一緒に、ひとつずつ何かしたいです。同様に、「f」をとり、何かをしてから「u」をとり、何かをするなど。 –

+0

あなたが最初の文字を書いたコードはありますか? – CoderDennis

答えて

1

lexme/2再帰を行うために、それは自分自身を呼び出す必要があります。私はあなたが二番目のパラメータをどうするつもりかわからないんだけど

lexme([H | T], _) -> 
    io:fwrite("~p~n", [H]), 
    lexme(T, 1). 

はこれを試してみてください。あなたはそれを無視しているので、なぜそこにいるのですか?

完全な定義はこのようなものになるだろうので、あなたはまた、再帰が終了できるように空のリストを扱う機能ヘッドをお勧めします:

lexme([], _) -> 
    done; 
lexme([H | T], _) -> 
    io:fwrite("~p~n", [H]), 
    lexme(T, 1). 

詳細についてはhttp://learnyousomeerlang.com/recursionを参照してください。

+0

私はErlangを初めて使っています.2番目のパラメータは、その機能を異なるアリティを持つ別のものとして識別するためのものです。 –

関連する問題