ファイル名を文字列とし、文字のペアのリストをとる関数を記述します。この関数は、指定されたファイルを開き、ファイルの内容を読み込み、文字を画面にエコーする必要があります。ペアの最初の位置にある文字は、そのペアの2番目の位置の文字としてエコーされなければなりません。たとえば、fileSubst "inputFile" [(# "a"、# "b")、(# "b"、# "z")]のような呼び出しは、置換された文字がすべて出現したinputFileの内容をエコーします文字bとすべての文字bの出現を文字zで置き換えます。 @molbdniloが示唆したようファイル名とリストを取るSML関数
fun fileSubst (fileName : string, []) = nil
| fileSubst (fileName, (a,b)::cs) = let
val stream = TextIO.openIn fileName
TextIO.input1 = fileSubst (fileName,cs) in if isSome a
then print(Char.toString(a)) else TextIO.print end ;
これを単一の機能で解決しようとしないでください。文字のリストを変換する問題を解決することから始めることは、実りあるものになる可能性があります。 – molbdnilo