Я пытаюсь сломать слово в разных слогах в прологе согласно 2 различным правилам. Правило 1: гласный-согласный-гласный (сломанное слово после второго гласного) правило 2: гласный-согласный-согласный-гласный (сломайте слово между двумя согласными), например, калькулятор = cal-cula-tor .. У меня уже есть следующий код в прологе, однако он анализирует только первые 3 или 4 буквы слова. Мне это нужно обрабатывать и анализировать все слово.Обработка текста пролог
vowel(a).
vowel(e).
vowel(i).
vowel(o).
vowel(u).
consonant(L):- not(vowel(L)).
syllable(W, S, RW):-
atom_chars(W, [V1, C, V2|Tail]),
vowel(V1),
consonant(C),
vowel(V2),
!,
atomic_list_concat([V1, C, V2], S),
atomic_list_concat(Tail, RW).
syllable(W, S, RW):-
atom_chars(W, [V1, C, C2, V2|Tail]),
vowel(V1),
consonant(C),
consonant(C2),
vowel(V2),
!,
atomic_list_concat([V1, C, C2, V2], S),
atomic_list_concat(Tail, RW).
syllable(W, W, _).
break(W, B):-
syllable(W, B, ''), !.
break(W, B):-
syllable(W, S, RW),
break(RW, B2),
atomic_list_concat([S, '-', B2], B).
Это «согласный», а не «постоянная» –
Я просто заметил, что Вы правильно написано в коде, но не в тексте ... это странно –
@Boris Вы замечаете вещи, которые довольно неуместны .. согласные или постоянные, они оба означают одно и то же ... письмо, которое не является гласным .. я понятия не имею, почему мое правописание так беспокоит вас. –