いくつかのソースファイルがありますが、それらはS式で記述されています。 Haskellはそれらのs式を読むことができますか?これらのs式は、Haskellプログラムを実行するためのパターンとして必要です(これらのs式はすでに私のhaskellプログラムのデータ型の形式であるとします)。たとえば、 ファイル内のS式はArithBiOp Plus (AInt 5) (AInt 5)
であり、haskellプログラムではこの行をArithBiop opcode oprand1 operand2
と一致させることができます。HaskellはどのようにS式をファイルから読み込むことができますか?
答えて
あなたが運が良ければ、read
を使用してファイルからデータを取得するための正しい形式のデータ型を作成することができます。あなたたとえば:
data Exp = ArithBiOp Op Exp Exp | AInt Integer deriving (Show, Read)
data Op = Plus | Minus deriving (Show, Read)
次に、あなただけの文字列を取得し、read
でそれを変換するためにreadFile
を使用することができます。
このようなファイルからデータを読み込むための組み込みメソッドがあるかどうかを確認するには、答えはいいえ、実際はありません。期待read (show x)
== x
とHaskellのソースとして評価show x
の出力は、またx
に等しくなるように
標準型クラスRead
とShow
は、類似した何かを貧しい人の直列化の一種です。しかし、他のソースからの任意の式がある場合は、たとえ(あなたの例のように)非常に似ているとしても、read
で期待されるフォーマットと一致すると仮定するのはおそらく安全ではありません。
一方、S式は世界で最も簡単に解析できるので、Parsecなどでデータを読み取るのは簡単ではないでしょう。
show
の出力に一致すると確信できるように入力を十分に制限できれば、read
は機能するはずです。
> read " Just 1" :: Maybe Int
Just 1
> read " Just 1" :: Maybe Int
Just 1
> read " Just (1)" :: Maybe Int
Just 1
> read "(Just (1))" :: Maybe Int
Just 1
などなど:デフォルトRead
インスタンスはスプリアス括弧と空白のようなものに、少なくともいくらか堅牢であることに注意してください。
あなたがファイルからデータを取得する方法について質問している場合、特別な操作は必要ありません。他のものに使用するのと同じファイルI/Oを使用して、文字列をread
またはパーサーに渡してください。簡単なものについては、the System.IO
moduleは必要なものすべてを行う必要があります。
read
を使用し、1行に1つの値を持つ非常に単純な例では、stdinから読み取ると、readLn関数が便利なショートカットです。
情報をありがとう、私はそれを最初に試してみます。 –
- 1. WPFでは、リソースからメニューをどのように読み込むことができますか?
- 2. iPhoneアプリでコンピュータからファイルを読み込むことはできますか?
- 3. どのように私はそれらのidでjavascriptテンプレートを読み込むことができますか?
- 4. Scalaでは、ファイルから読み込むときに、最初の行をどのようにスキップしますか?
- 5. .htaccessファイルからApacheモジュールを読み込むことはできますか?
- 6. RubyのMULTIブロック内でRedisからどのように読み込むことができますか?
- 7. コルドバ6アプリは、ファイルから読み込むことができません://パス
- 8. ファイルから読み込み、Javaのファイルに書き込む
- 9. OpenCVのXML文字列からどのように読み込むことができますか?
- 10. iOS、SQLite:DBから読み込むことができません
- 11. Excelのスプレッドシートのようなファイルからiphoneアプリを読み込むことはできますか?
- 12. Vtiger CRM:変更された.tplファイルをどのように読み込むことができますか?
- 13. どのようにしてHTMLファイルを読み込むことができますか?
- 14. rspec "そのようなファイルを読み込むことができません"
- 15. 同じディレクトリのファイルからどのように読み込むのですか?
- 16. は、分離ストレージからXMLファイルを読み込むことができ
- 17. MATLAB matファイルをRubyに読み込むことはできますか? Pythonで
- 18. haskell " - >"演算子はどこで読むことができますか?
- 19. サーブレットフィルタからファイルに書き込んでEclipseで読み込むにはどうしたらいいですか?
- 20. Visual C++/CLIでファイルに書き込み、ファイルから読み込む方法は?
- 21. URLからSystem.IO.Streamオブジェクトに読み込むことはできますか?
- 22. どのようにiframeを使わずにCodeigniterのWordpressページを読み込むことができますか
- 23. 外部ページを読み込むことはできますか?
- 24. ファイルから読み込んでStringIOに書き込む - Python
- 25. php://入力ストリームをバッファから読み込むことはできますか?
- 26. assetsフォルダからドロワブルを読み込むことはできますか?
- 27. sqliteは個々のファイルから個々のテーブルを読み込むことができますか?
- 28. JavaでZipファイルからメモリにファイルを読み込むにはどうすればよいですか?
- 29. pythonは画像ファイルをバイナリに読み込むことができます
- 30. テキストファイルから読み込むときにApache Ignite Cacheを読み込む方法
はい、ハスケルはそれを行うことができます! –
ああ、私はちょうど質問の私のタイトルを "How can ....."に編集しました。それで?通常のHaskellを使うのが好きですか? –
母、申し訳ありません、それは何らかの形で走っている冗談です。私の*実際の*答えを見てください。 –