equiv_char(+ベース,-旧リスト,+新リスト) image_length(+アトム,-長さ) byte_length(+アトム,-長さ)
equiv_char/3は、IF/Prologのパラメータ -lt 言語と共に使用する場合に便利です。 (言語 = euc, sjis, japanese, chinese, taiwanese, korean)
「ベース」と「新リスト」は、ある文字間における等価関係を定義します。IF/Prologによって読み込まれると、「旧リスト」中のすべての文字は「ベース」に置き換えられます。書き出す場合には、文字「ベース」が「新リスト」の最初の文字に置き換えられます。「旧リスト」は、以前に定義した等価のリストを戻します。
$ ifprolog -lt euc IF/Prolog Version 4.0.3 SUN3 created 11/7/90 Copyright (C) 1984,90 InterFace Computer GmbH
?- equiv_char('(', ['( ', '(']). yes
eucコード中では、文字'('は漢字とASCII文字の両方があります。上述の定義を使えば、読み込み時に両方の文字は同じ意味になります。そして出力時には、ASCII文字が使われます。
image_length/2は、文字列を出力するのに必要なascii文字桁数をかぞえます。image_lengthは、2バイト文字セットが使用される時だけatomic_lengthと異なります。
byte_length/2は、文字列中のバイト数をかぞえます。byte_lengthは、2バイト文字セットが使用される時だけatomic_lengthと異なります。