string_concat を使用する場合、swipl でバックスラッシュをエスケープしたいと考えています。
シナリオ1-
string_concat('stack', ' overflow', Result).
Result = "stack overflow"
シナリオ 2-
string_concat('stack', ' \=overflow', Result).
Syntax error: Undefined character escape in quoted atom or string: `\='
シナリオ3-
string_concat('stack', ' \\=overflow', Result).
Result = "stack \\=overflow"
これで、シナリオ 1 は期待どおりに動作します。シナリオ 2 で説明した状況に直面しています。ここでは、バックスラッシュとイコールを含む文字列を連結する必要があります。つまり、string1 にはテキストのみが含まれ、string2 には \= を含むテキストが含まれており、結果は string1 と string2 が連結されたものになります。ただし、シナリオ 2 のように \= だけを使用すると、シーケンスをエスケープするように求めるエラーが発生します。ここで、シナリオ 3 のようにエスケープすると、2 つのバックスラッシュと等号が表示されます。2 つのバックスラッシュは必要ありません。
私の出力は正確になるはずですstack \=overflow
。ここに欠けているエスケープシーケンスまたはメソッドはありますか?
ありがとう!