转换Prolog中的第一个原子字母

时间:2013-11-30 07:26:25

标签: prolog

如何在LPA prolog中以大写字母转换原子的第一个字母?我知道的唯一方法是使用'lwrupr'。但它将所有字母都大写。

1 个答案:

答案 0 :(得分:2)

我没有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'.