Правило пролога для изменения формы слова во множественном числе - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь написать какое-то правило на языке пролога, чтобы изменить форму единственного числа на форму множественного числа, и хочу поддержать, чтобы написать правило.

Ответы [ 2 ]

0 голосов
/ 02 мая 2019
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'))).
0 голосов
/ 01 мая 2019

Полагаю, вы хотите использовать множественные английские слова.Один из подходов состоит в том, чтобы иметь общее правило, а также некоторые особые правила для особых случаев.

% 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.

Возможно, вы могли бы сделать правило более разумным.Это то, с чего я бы начал.

...