clpfd!
< > :
use_module (
(clpfd)).
SWI-Prolog 7.3.16, :
< > ? -
(Zs, 4), Zs
ins 1..4,
sum (Zs, # =, 7),
labeling ([], Zs). Zs = [1,1,1,4]
; Zs = [1,1,2,3]
; Zs = [1,1,3,2]
; Zs = [1,1,4,1]
; Zs = [1,2,1,3]
; Zs = [1,2,2,2]
; Zs = [1,2,3,1]
; Zs = [1,3,1,2]
; Zs = [1,3,2,1]
; Zs = [1,4,1,1]
; Zs = [2,1,1,3]
; Zs = [2,1,2,2]
; Zs = [2,1,3,1]
; Zs = [2,2,1,2]
; Zs = [2,2,2,1]
; Zs = [2,3,1,1]
; Zs = [3,1,1,2]
; Zs = [3,1,2,1]
; Zs = [3,2,1,1]
; Zs = [4,1,1,1].
" ", chain/2:
< > ? - (Zs, 4), Zs ins 1..4,
(Zs, # = <), sum (Zs, # =, 7), ([], Zs). Zs = [1,1,1,4]
; Zs = [1,1,2,3]
; Zs = [1,2,2,2]
; .