heyheywendy 2015-03-06 11:45 采纳率: 100%
浏览 1947
已采纳

prolog 基础程序 替换字母

刚学prolog,希望大家指点迷津。
题目要求是
?- word_with_replacements([s, c, r, a, b, b, l, e], Word_with_replacements).
Word_with_replacements = [s, c, r, e, b, b, l, a] ;
false.

?- word_with_replacements(Word, [s, c, r, e, b, b, l, a]).
Word = [s, c, r, a, b, b, l, e] ;
false.

其中a可以替换成e,e可以替换为a。
并且要求代码可以拓展为任意字母替换。目前我只能参照例子写出这样的程序,但是不符合题目的输出要求,请问改怎么改正呢?谢谢。
第一种
replace(_,_,[],[]).
replace(a,b,[a|T1],[b|T2]):-replace(a,b,T1,T2).
replace(a,b,[m|T1],[m|T2]):-m\=a, replace(a,b,T1,T2).
第二种
rep([],_,_,[]).
rep([Z|T1],Z,A,[A|T2]):- rep(T1,Z,A,T2).
rep([H|T1],Z,A,[H|T2]) :- rep(T1,Z,A,T2).
goal
rep([1,2,3],2,4,X).

  • 写回答

1条回答 默认 最新

  • heyheywendy 2015-03-08 11:50
    关注

    没人会么= = 啊啊啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题