程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> replace-prolog 基礎程序 替換字母

replace-prolog 基礎程序 替換字母

編輯:編程綜合問答
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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved