我应该写一个2个参数的函数,它将第一个数字从base转换10为base b。返回的值应该是一个集合。
我尝试使用格式,但如果b是2,9,0等,我不知道如何使用。
(defn f[x y]
(cond
(= y 8)(format "octal %o" x)
(= y 16)(format "hex %x" x)
(= y 10)(format "decimal %d" x)
:else 0))
Run Code Online (Sandbox Code Playgroud) 解决以下Caliban问题,将每条线索"忠诚地"翻译成Prolog,即尽可能忠诚.
作为一种抽象的简单练习,假设四个无意义的符号a,b,c和d以一个或另一个顺序对应于同样无意义的符号w,x,y和z,并且进一步假设
如果a不是x,那么c不是y.
如果b是y或z,则a是x.
如果c不是w,则b是z.
如果d是y,则b不是x.
如果d不是x,则b是x.两组符号以什么顺序对应?
我尝试了以下代码:
vban(L) :-
L=[[a,C1],[b,C2],[c,C3],[d,C4]],
( member(C1,[w,y,z]) -> member(C3,[w,x,z])),
( member(C2,[y,z]) -> member(C1,[x])),
( member(C3,[x,y,z]) -> member(C2,[z])),
( member(C4,[y]) -> member(C2,[w,y,z])),
( member(C4,[w,y,z]) -> member(C2,[x])).
Run Code Online (Sandbox Code Playgroud)
但它显示失败.任何帮助将不胜感激.