/* Gensym example in Picat v3. Port of Lawrence Byrd's (?) GENSYM.PL to Picat v3. Cf Picat's number_vars/1 and bp.numbervars/3 This Picat model was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import gensym_v3. main => go. % gensym via gensym_v3 go ?=> gensym('X',X1), println(x1=X1), gensym('X',X2), println(x2=X2), println([x1=X1,x2=X2]), println([y1=Y1,y2=Y2]), gensym('Y',Y1), gensym('Y',Y2), println([y1=Y1,y2=Y2]), nl. go => true. % Using Picat's number_vars/1. go2 ?=> number_vars([X1,X2]), println(x1=X1), println(x2=X2), println([x1=X1,x2=X2]), println(before=[y1=Y1,y2=Y2]), number_vars([Y1,Y2]), println(after=[y1=Y1,y2=Y2]), nl. go2 => true. % Using bp.numbervars/3. go3 ?=> bp.numbervars([X1,X2],1,N), println([x1=X1,x2=X2,n=N]), println(before=[y1=Y1,y2=Y2]), bp.number_vars([Y1,Y2],10,N2), println(after=[y1=Y1,y2=Y2,n2=N2]), nl. go3 => true.