1

2 つのランダムな英数字文字列で gen/fmap を使用しようとしています。次に、それらを「@」で連結し、「.com」を追加します。しかし、私は構文に苦労しています。

最初の試み:

(gen/fmap str (gen/string-alphanumeric) "@" (gen/string-alphanumeric) ".com")

しかし、gen/fmap は 2 つの引数しか取りません。

2番目の部分をグループ化する2回目の試行も機能しません

(gen/fmap str ((gen/string-alphanumeric) "@" (gen/string-alphanumeric) ".com"))

編集:部分的な解決策があります。メールアドレスを生成しますが、@の前後は同じです。例: john@john.com

これは部分的な解決策です

(def gen-full-string
  (gen/such-that #(not= % "") gen/string-alphanumeric))

(gen/fmap #(str % "@" % ".com") gen-full-string) 

""空の文字列がコードをクラッシュさせていたので、gen-full-string を書きました。構文解析があり、検証関数を作成する予定があるため、空の文字列は気にしませんでした。エッジケースではなくコア機能をテストしたかった. 検証を実装したら、おそらく gen-full-string を削除します。したがって、メールジェネレーターは次のようになります(gen/fmap #(str % "@" % ".com") gen/string-alphanumeric)

4

3 に答える 3