prolog规则将单数形式的单词改为复数形式

问题描述 投票:-1回答:2

我正试图用prolog语言编写一些规则来将单数形式改为复数形式,并希望支持编写规则。

forms prolog plural
2个回答
0
投票

我假设你想复数英文单词。一种方法是制定一般规则,并针对特殊情况制定一些具体规则。

% special cases
pluralize(deer, deer).
pluralize(mouse, mice).
pluralize(antenna, antennae).

% general rule
pluralize(Singular, Plural) :- atom_concat(Singular, s, Plural).

有些话似乎没问题:

?- pluralize(coin, X).
X = coins.

?- pluralize(date, X).
X = dates.

但是有些话似乎把它绊倒了:

?- pluralize(fox, X).
X = foxs.

你可能会使规则更加智能化。这是我开始的地方。


0
投票
list_member(X,[X|_]).
list_member(X,[_|TALL]):-list_member(X,TALL).

isVowels(A):-list_member(A,[a, e, i, o, u]),!.
isConsonants(A):-list_member(A,[b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, x, w,y,z]),!.

word:- write('Enter the word you want to know weather it followed by a an or the:.'),read(X),nl,

plular(X):-((isVowels(sub_atom(X, _, 1, 0, C)))->(write('Plular form of '),write(X),write(' is '),write(X),write('s'));(write('Plular form of '),write(X),write(' is '),write(X),write('es'))).
© www.soinside.com 2019 - 2024. All rights reserved.