2013-11-30 2 views
1

Как преобразовать 1-ю букву атома в прописную букву в прологе LPA? единственный способ, которым я знаю, - использовать lwrupr. Но он заглаживает все буквы.Преобразование 1-й буквы атома в Prolog

+0

Вы хотите, чтобы атом стал переменным или простым чем-то вроде 'x' ->' 'X''? – rano

+0

Нет, мне нужно напечатать смысл некоторых слов, и требование состоит в том, что если какой-либо ввод является заглавной буквой, то смысл должен быть в заглавной букве. – user2344504

ответ

1

Я не LPA Prolog доступны, но здесь есть догадка, в результате быстрого чтения справочного руководства: взять первую букву из атома, сделать его верхний регистр, и восстановить слово

first_char_uppercase(WordLC, WordUC) :- 
    atom_chars(WordLC, [FirstChLow|LWordLC]), 
    atom_chars(FirstLow, [FirstChLow]), 
    lwrupr(FirstLow, FirstUpp), 
    atom_chars(FirstUpp, [FirstChUpp]), 
    atom_chars(WordUC, [FirstChUpp|LWordLC]). 

В SWI-Prolog, мы можем проверить его определения недостающего lwrupr встроенный/2, как этот

lwrupr(Low, Upp) :- upcase_atom(Low, Upp). 

и мы получаем

?- first_char_uppercase(carlo,X). 
X = 'Carlo'. 

?- first_char_uppercase('Carlo',X). 
X = 'Carlo'. 
+0

Это дает мне предикат не определен ошибки в LPA пролог – user2344504

+0

который предикат? atom_chars в порядке, из документов – CapelliC

+0

Это нормально для Win Prolog. Но не LPA пролог, потому что он такой старый, и мне не разрешено использовать Win proog. – user2344504

Смежные вопросы