Prolog转换为大写字母

时间:2017-03-26 19:55:57

标签: prolog functor uppercase lowercase

好的,我想询问是否有任何方法可以将小写字母更改为大写而不添加“”。对不起,如果这听起来很傻,但我需要这个来运行另一个程序。我写了这样的东西:

change(~A,X):-
   upcase_atom(A,D),
   X = false-D.

我需要输出看起来像:

X=false-P

但它看起来像这样:

X=false-"P"

我真的很感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

  

注1 仿函数/谓词不能包含连字符(-。您可以通过使用下划线(_)来解决问题。

     

节点2 :在此基础上,如果您编写false_X,它会将false_X 视为整个原子,因此{{ 1}}不会绑定到声明的X

     

注3 :您应该声明X 运算符,否则Prolog会出错。

根据这两个评论,您可以使用atom_concat/3轻松解决问题:

~

第一行声明:- op( 1200, fx, [~]). change(~A,X):- upcase_atom(A,D), atom_concat(false_,D,X).一个运算符,其中一个参数(并且写成~)优先级为1200.如果有人写入,则查询产生:

f x