簡體   English   中英

如何從Prolog中的數字列表構建數字?

[英]How to build a number from a list of numbers in Prolog?

我在Prolog中還很陌生,我一直在嘗試(沒有成功)從數字表示形式中獲取數字。 例如:L = [1,2,3] => N = 123我設法建立了這種遞歸算法,但是說“算術轉換不是函數”。 有人可以幫我改正嗎?

    conv([],0).
    conv([H|T],R):-
         R is H*10+conv(T,R).
    conv([E],R):-
         R is E.

看看這個對最近相關問題的答案

它使用表示純Prolog謂詞n_base10/2

:- use_module(library(clpfd)).

查詢樣例:

?- n_base10(123, [1,2,3]).
true.

?- n_base10(123, Ds).
Ds = [1,2,3].

?- n_base10(N, [1,7,9]).
  N = 179
; false.

?- n_base10(459183754813957135135239458256, Ds).
Ds = [4,5,9,1,8,3,7,5,4,8,1,3,9,5,7,1,3,5,1,3,5,2,3,9,4,5,8,2,5,6]. 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM