如何在 Prolog 中编写键值对?
How can I write key-value pairs in Prolog?
假设我有以下谓词,它声明 ID loc1
指定一个位置。
isLocation('loc1', 'Location 1').
我想为第二个文本 (Location 1
) 提供翻译,i。 e.键值对,例如 en='Location 1', de='Ort 1', ru='Местоположение 1'
.
在 Prolog 中编码此类数据的正确方法是什么,尤其是 TuProlog(理想情况下 - 标准化 Prolog)?
下面的符号可以在 SWI Prolog 之外工作吗?
isLocation('loc1', ['en'-'Location 1', 'de'-'Ort 1', 'ru'-'Местоположение 1']]).
在任何 Prolog 中工作的最简单方法是使用 member/2 检索键值对。例如
l10n(MessageId, Country, Translated) :-
isLocation(MessageId, Localized),
member(Country-Translated, Localized).
这种基本构造当然需要根据要求进行一些改进。
假设我有以下谓词,它声明 ID loc1
指定一个位置。
isLocation('loc1', 'Location 1').
我想为第二个文本 (Location 1
) 提供翻译,i。 e.键值对,例如 en='Location 1', de='Ort 1', ru='Местоположение 1'
.
在 Prolog 中编码此类数据的正确方法是什么,尤其是 TuProlog(理想情况下 - 标准化 Prolog)?
下面的符号可以在 SWI Prolog 之外工作吗?
isLocation('loc1', ['en'-'Location 1', 'de'-'Ort 1', 'ru'-'Местоположение 1']]).
在任何 Prolog 中工作的最简单方法是使用 member/2 检索键值对。例如
l10n(MessageId, Country, Translated) :-
isLocation(MessageId, Localized),
member(Country-Translated, Localized).
这种基本构造当然需要根据要求进行一些改进。