私は私の研究のためにエリクサーを教えていますが、私の研究では数十から数百のテキストファイルを開き、これらのファイルのデータを結合し、私は、ディレクトリにあるすべてのファイルをどのように開いて、これらすべてのファイルのデータにアクセスできるかを把握しようとしています。ループ内の100個のファイルを反復処理するのは非常に遅いため、forループは使用しないでください。 Streamモジュールは私の目的には理想的だと思いますが、どうやって使うのかはわかりません。エリクシルの複数のファイルからデータを開いて収集する
以下、テストコードがあります。それは乱数を含むファイルの束を開いて、ファイル内の数値の文字列を整数に変換し、それらをソートすることだけです。オープニングファイルの部分以外はすべて動作します。私はPathモジュールを使用しようとしていますが、これはすべてのファイルを見つけることに成功しますが、それをsort_num関数に使用可能な方法で渡す方法はわかりません。誰もが助けてくれてありがとう!
defmodule OpenFiles do
def file_open do
Path.wildcard("numfiles/*.txt")
end
def sort_num do
file_open
|> File.stream!
|> Stream.map(&String.strip/1)
|> Stream.map(&String.to_integer/1)
|> Enum.sort
end
end
IO.inspect OpenFiles.sort_num
本当に素晴らしい詳細な回答です!本当にありがとう。はい、私は並列マップの実装が私の最善の策だと思います。 –