8

プロローグに文字コードのリストがあります。

それらを文字に変更したいと思います。

例えば、

L = "abc" 戻り値 L = [97,98,99]

私がから始めると仮定するとL = [97,98,99]

メソッドが存在する場合、Lをabcに戻す方法はありますか

convert(L, X)戻り値X = abc

ありがとう。

4

3 に答える 3

5

プロローグ文字列からアトム(データ型の説明L="abc", convert(L, X), X = abcを参照)を取得したいとします。私はあなたが欲しいかそのようなものだと思います。ドキュメントによるとのように動作するはずです。atom_codes/2L="abc", atom_codes(X, L).

残念ながら、現在、システムにSWI-Prologがありません。しかし、ここにatom_codes/2を含むYAPがあります

YAP 6.3.2 (x86_64-linux): Sat Sep  1 08:24:15 EEST 2012
MYDDAS version MYDDAS-0.9.1
?- L="abc", atom_codes(X,L).
L = [97,98,99],
X = abc

文字列を出力する必要がある場合は、アトムに変換する必要がないことも忘れないでください。SWI(またはYAP)のformat/2を参照してください

?- L="abc", format("~s~n", [L]).
abc
L = [97,98,99]
于 2012-12-02T15:57:42.570 に答える
4

char_code(?Atom, ?ASCII)マップリストで使用します。

char_code(?Atom、?ASCII)1文字の文字とASCII値の間で変換します。(16)

ソース

于 2012-12-02T15:48:39.917 に答える
4

文字は長さ 1 のアトムとして表されます。これらは次のように生成できます。

  • Prolog フラグを変更することにより、読み取り時にdouble_quotes。詳細については、このリンクとそのリンクを参照してください。

    :- set_prolog_flag(double_quotes, chars).
    
  • atom_codes/2とを動的に使用できますatom_chars/2。または、直接使用することもできますchar_code/2

于 2012-12-04T16:42:28.430 に答える