答えて
in_channel
またはとすることはできません。ここではいくつかの提案があります:あなたが読んでいた文字をバック入れている場合は
は、あなたが要素を削除するのではなく、ストリームを検査するために使用
peek
を使用する場合があります。あなたは、その機能のC-Interfaceを直接書く運があるかもしれません。私はこれが本当に悪い考えであることを知ることができます。
代わりにアキュムレータを使用したことはありますか?
ファスナーやスタック、または文字のプッシュバックを可能にする他の構造のタイプを使用して、現在の機能のモジュールを記述します。
OCaml Batteries Includedは、ストリームのためのはるかに包括的かつはるかに高いレベルのインターフェイスを備えています。あなたはこれを見ることができます。プラス、一般的に、それは良いです。
基本的には:できません。バッテリ(およびExtlib)は拡張I/Oラッパーを提供しますが、どちらもこの機能をサポートしていません。
ただし、キャラクターレベルの読み取りのみを行い、I/OストリームをEnum(バッテリー付きのBatEnum)にラップする場合は、バッテリーまたはExtlibでエミュレートすることができます。 Enumは一般的な列挙型で、「次の値を取得する」タイプのインターフェイスを提供し、値を列挙型の先頭に戻すことができます。したがって、Enum.next
関数で文字を返すタイプchar Enum.t
の列挙型でstdinをラップし、Enum.push
を使用して、不要な文字を前面に押し戻すことができます。それは、その後、可能かもしれないあなたが最初にそれらのモジュールが混乱押し上げ文字の意味をだろう内部バッファリングを行わないことを確認した場合、より柔軟なインタフェースのためIO(BatIO)で、このような列挙型を再ラップする
。
- 1. SML ORG-モードのブロックは、それが "STDINを" =返します。文字列
- 2. stdinに文字列を渡す
- 3. OCamlで文字列を繰り返す再帰関数
- 4. CreateProcessを文字列からstdinにします。
- 5. ocamlのオプション文字列
- 6. OCamlの文字Rubyで
- 7. Ocamlの文字列ヒストグラム
- 8. 文字を1文字ずつ読み込み、文字を2次元配列に格納します。OCaML
- 9. stdinはLinuxの文字デバイスとして扱われますか?
- 10. 文字の周りに文字を繰り返しますか?
- 11. 文字列のOCaml関数のパラメータパターンマッチング
- 12. OCamlでフォーマットされた文字列を取得するには? OCamlでは
- 13. ocamlリストからの条件文による繰り返し
- 14. '\ n'なしでstdinの文字を置換するLinuxコマンド
- 15. Ocaml-タプルの繰り返し
- 16. Pythonの文字列の最後の文字を返します
- 17. 最初の500文字の文字を返します
- 18. Makefile:文字列の最初の2文字を返します。
- 19. OCamlの文字列にヌル文字/バイトを含めるための慣用句
- 20. PHP:PHPでSTDIN /シングル文字処理
- 21. 文字列のすべての文字に対してTrueを返します
- 22. Ocamlの文字列を比較するには
- 23. OCamlに文字列を印刷する際の問題
- 24. OCamlで文字列をNum.numに変換するには?
- 25. OCamlで型を返す
- 26. stdinを文字列に上書きする方法
- 27. Ocamlの正規表現は、1文字の文字列、数字、およびスペースと一致しませんか?
- 28. OCamlで文字列を比較するには?
- 29. OCaml - セットを文字列に変換する
- 30. 最初の非繰り返し文字列を返します
バッテリは良好ですが、IOストリームでこの機能を(直接的に)サポートしていません。 –
実際、IO抽象化はOCaml標準ライブラリのIO抽象化に反対することでそれを防ぐものではありません。だからそれは追加することができます。これは何もないより優れています。 – Yoric