3 questions on FD.distribute generic

Yonet eracar at comcast.net
Tue Dec 14 05:21:34 CET 2004


Hi,

I like to customize the behavior of FD.distribute using the generic option. 
I like to implement my own value selection function. The following function 
works as it is.

{FD.distribute generic(order:   size
    filter:  undet
    select:  id
    value:   fun {$ V}
         DomSize = {FD.reflect.size V}
         CurDomain = {FD.reflect.domList V}
         Ref = {List.nth CurDomain 1}
         Sel
%         LStdOut = {New Open.file init(name:stdout
%     flags:[write append]
%     mode: mode(owner: [read write]
%         group: [read write]))}
      in

%         {LStdOut write(vs:"DomSize: "#DomSize#"\n")}
         if DomSize > 1 then
             Sel = {FD.reflect.nextLarger V Ref}
         else
             Sel = {FD.reflect.min V}
         end
%         {LStdOut write(vs:"Sel: "#Sel#"\n")}
%         {LStdOut close}
         Sel
      end
    procedure: unit)
   Start}

Here are my questions:

1) Whenever, I want to call a function inside this selection function the 
execution stalls when the search starts. Does it mean that I cannot use any 
global variables (local to the .OZ file) in this function?

2) Why does the OZ debugger stop inside this function, although the debugger 
does not complain when I set breakpoints?

3) Why does the function stall when I un-comment the lines to display what 
is going on inside the function (like printf s in C)? Since the breakpoint 
do not work, I wanted to print local variables.

I also attached the OZ files that I used for this program..

Thanks,
Yonet



begin 666 Data4.oz
M)0HE($%U=&]M871I8V%L;'D at 9V5N97)A=&5D(&)Y($]#3%1R86YS;&%T;W(N
M0T]:1&%T84=E;F5R871O<BX*"B4 at 1FEL93H@1&%T82YO>@HE"F9U;F-T;W(*
M"F5X<&]R= T*"51A<VMS#0H)0W5S=&]M97)S#0H)5F5R<VEO;@T*<')E<&%R
M90H)5F5R<VEO;B ]("(T(@T*"51A<VMS(#T at 6PT*"0EC,%\P*&1U<CHS("!R
M97,Z<C,I#0H)"6,P7S$H9'5R.C$@<')E.EL at 8S!?,%T@<F5S.G(R*0T*"0EC
M,%\R*&1U<CHT('!R93I;(&,P7S!=(')E<SIR,2D-"@D)8S!?,RAD=7(Z-B!P
M<F4Z6R!C,%\P(&,P7S%=(')E<SIR-"D-"@D)8S!?-"AD=7(Z-"!P<F4Z6R!C
M,%\P(&,P7S$@8S!?,ET@<F5S.G(T*0T*"0EC,%]L87-T*&1U<CHP('!R93I;
M(&,P7S @8S!?,2!C,%\R(&,P7S, at 8S!?-%T@*0T*"0EC,5\P*&1U<CHS("!R
M97,Z<C,I#0H)"6,Q7S$H9'5R.C$@<')E.EL at 8S%?,%T@<F5S.G(R*0T*"0EC
M,5\R*&1U<CHT('!R93I;(&,Q7S!=(')E<SIR,2D-"@D)8S%?-"AD=7(Z-"!P
M<F4Z6R!C,5\P(&,Q7S$@8S%?,ET@<F5S.G(T*0T*"0EC,5\U*&1U<CHW('!R
M93I;(&,Q7S @8S%?,5T@<F5S.G(R*0T*"0EC,5]L87-T*&1U<CHP('!R93I;
M(&,Q7S @8S%?,2!C,5\R(&,Q7S0 at 8S%?-5T@*0T*"0EC,E\P*&1U<CHS("!R
M97,Z<C,I#0H)"6,R7S$H9'5R.C$@<')E.EL at 8S)?,%T@<F5S.G(R*0T*"0EC
M,E\R*&1U<CHT('!R93I;(&,R7S!=(')E<SIR,2D-"@D)8S)?;&%S="AD=7(Z
M,"!P<F4Z6R!C,E\P(&,R7S$@8S)?,ET@*0T*"0EC,U\P*&1U<CHS("!R97,Z
M<C,I#0H)"6,S7S$H9'5R.C$@<')E.EL at 8S-?,%T@<F5S.G(R*0T*"0EC,U]L
M87-T*&1U<CHP('!R93I;(&,S7S @8S-?,5T@*0T*"5T-"@E#=7-T;VUE<G,@
M/2!;#0H)"6,P*&1U93HR-"!J;V(Z8S!?;&%S="D-"@D)8S$H9'5E.C(T(&IO
M8CIC,5]L87-T*0T*"0EC,BAD=64Z,C0@:F]B.F,R7VQA<W0I#0H)"6,S*&1U
<93HR-"!J;V(Z8S-?;&%S="D-"@E=#0H*96YD"@``
`
end

begin 666 ControlExe2.oz
M9G5N8W1O<@T*#0II;7!O<G0-"B @($%P<&QI8V%T:6]N#0H@("!$871A#0H@
M("!&1 T*(" @3W!E;@T*(" @4V-H961U;&4-"B @(%-E87)C:"!A=" G4V5A
M<F-H+F]Z9B<-"B @( T*9&5F:6YE#0H-"B @(%-O; T*(" @3&]G1FEL90T*
M(" @3&]G4W1D3W5T#0H@(" -"B @(&9U;B![1V5T1'5R(%1A<VM3<&5C?0T*
M(" @(" @>TQI<W0N=&]296-O<F0 at 9'5R('M-87 @5&%S:U-P96, at 9G5N('LD
M(%1]#0H)"0D)"2 @>TQA8F5L(%1](U0N9'5R#0H)"0D)(" @(" @(&5N9'U]
M#0H@("!E;F0-"B @(&9U;B![1V5T4W1A<G0 at 0W5S4W!E8WT-"B @(" @(%1A
M<VMS(#T@>TUA<"!#=7-3<&5C($QA8F5L?0T*(" @:6X-"B @(" @('M&1"YR
M96-O<F0@<W1A<G0 at 5&%S:W,@,"-&1"YS=7!]#0H@("!E;F0-"B @(&9U;B![
M1V5T5&%S:W-/;E)E<V]U<F-E(%1A<VM3<&5C?0T*(" @(" @1#U[1&EC=&EO
M;F%R>2YN97=]#0H@("!I;@T*(" @(" @>T9O<D%L;"!487-K4W!E8PT*(" @
M(" @('!R;V,@>R0 at 5'T-"@D@(&EF('M(87-&96%T=7)E(%0@<F5S?2!T:&5N
M(%(]5"YR97,@:6X-"@D@(" @('M$:6-T:6]N87)Y+G!U="!$(%(@>TQA8F5L
M(%1]? T*"2 @(" @('M$:6-T:6]N87)Y+F-O;F1'970 at 1"!2(&YI;'U]#0H)
M("!E;F0-"B @(" @("!E;F1]#0H@(" @("![1&EC=&EO;F%R>2YT;U)E8V]R
M9"!T;W(@1'T-"B @(&5N9 T*(" @(" @#0H@("!F=6X@>TYE9U-C:&5D=6QI
M;F<@1&%T87T-"B @(" @(%1A<VM3<&5C(#T at 1&%T82YT87-K<PT*(" @(" @
M4')O9'5C=',@/2!$871A+F-U<W1O;65R<PT*(" @(" @1'5R(#T@>T=E=$1U
M<B!487-K4W!E8WT-"B @(" @(%1A<VM/;E)E<R ]('M'971487-K<T]N4F5S
M;W5R8V4 at 5&%S:U-P96-]#0H@("!I;@T*(" @(" @<')O8R![)"!3=&%R='T-
M"@D at 4W1A<G0@/2![1V5T4W1A<G0 at 5&%S:U-P96-]#0H)("4 at 4')E<V5D96YC
M92!C;VYS=')A:6YT<PT*"2![1F]R06QL(%1A<VM3<&5C#0H)("!P<F]C('LD
M(%1]#0H)(" @("![1F]R06QL('M#;VYD4V5L96-T(%0@<')E(&YI;'T-"@D@
M(" @("!P<F]C('LD(%!]#0H)"2!3=&%R="Y0("L at 1'5R+E @/3PZ(%-T87)T
M+GM,86)E;"!4?0T*"2 @(" @(&5N9'T-"@D@(&5N9'T-"@D@)2!$=7)A=&EO
M;B!A;F0 at 8W5S=&]M97(@8V]N<W1R86EN=',-"@D@>T9O<D%L;"!0<F]D=6-T
M<PT*"2!P<F]C('LD($-](% @/2!#+FIO8 at T*"2 @:6X-"@D@(" @(%-T87)T
M+E @*R!$=7(N4" ]/#H at 0RYD=64-"@D@(&5N9'T-"@D@>U-C:&5D=6QE+G-E
M<FEA;&EZ961$:7-J(%1A<VM/;E)E<R!3=&%R="!$=7)]#0H-"B5[1D0N9&ES
M=')I8G5T92!F9B!3=&%R='T-"@T*"2 E>T9$+F1I<W1R:6)U=&4 at 9V5N97)I
M8R at I(%-T87)T?0T*"2![1D0N9&ES=')I8G5T90T*"2 @9V5N97)I8RAO<F1E
M<CH@("!S:7IE#0H)"2 @9FEL=&5R.B @=6YD970-"@D)("!S96QE8W0Z("!I
M9 T*"0D@('9A;'5E.B @(&9U;B![)"!6?0T*"0D)(" @(" @1&]M4VEZ92 ]
M('M&1"YR969L96-T+G-I>F4 at 5GT-"@D)"2 @(" @($-U<D1O;6%I;B ]('M&
M1"YR969L96-T+F1O;4QI<W0 at 5GT-"@D)"2 @(" @(%)E9B ]('M,:7-T+FYT
M:"!#=7)$;VUA:6X@,7T-"@D)"2 @(" @(%-E; T*)0D)"2 @(" @($Q3=&1/
M=70@/2![3F5W($]P96XN9FEL92!I;FET*&YA;64Z<W1D;W5T#0HE"0D)"2!F
M;&%G<SI;=W)I=&4 at 87!P96YD70T*)0D)"0D@;6]D93H@;6]D92AO=VYE<CH@
M6W)E860@=W)I=&5=#0HE"0D)"0D@(" @9W)O=7 Z(%MR96%D('=R:71E72DI
M?0T*"0D)(" @:6X-"@D)"2 @(" @( T*)0D)"2 @(" @('M,4W1D3W5T('=R
M:71E*'9S.B)$;VU3:7IE.B B(T1O;5-I>F4C(EQN(BE]#0H)"0D@(" @("!I
M9B!$;VU3:7IE(#X@,2!T:&5N#0H)"0D)(%-E;" ]('M&1"YR969L96-T+FYE
M>'1,87)G97(@5B!2969]#0H)"0D@(" @("!E;'-E#0H)"0D)(%-E;" ]('M&
M1"YR969L96-T+FUI;B!6?0T*"0D)(" @(" @96YD#0HE"0D)(" @(" @>TQ3
M=&1/=70@=W)I=&4H=G,Z(E-E;#H@(B-396PC(EQN(BE]#0HE"0D)(" @(" @
M>TQ3=&1/=70 at 8VQO<V5]#0H)"0D@(" @("!396P-"@D)"2 @(&5N9 D)"2 @
M(" @( T*"0D@('!R;V-E9'5R93H@=6YI="D-"@D@(%-T87)T?0T*"2 -"B @
M(" @(&5N9 T*(" @96YD#0H@("!F=6X@>T-O;G9E<G13;VQN5&]497AT(%-O
M;&Y]#0H@(" @("!,(#T@>U)E8V]R9"YT;TQI<W1);F0@>TQI<W0N;G1H(%-O
M;" Q?7T-"B @(" @(%1E>'0@/2![3F5W0V5L;" B(GT@(" @( T*(" @:6X-
M"B @(" @(&9O<B!)(&EN($P at 9&\-"@D at 5&5M< T*(" @(" @:6X-"@D at 5&5M
M<" ]("(@(B-)#0H)('M!<W-I9VX at 5&5X="![06-C97-S(%1E>'1](U1E;7!]
M#0H@(" @("!E;F0-"B @(" @('M!8V-E<W, at 5&5X='T-"B @(&5N9 T*(" @
M#0II;@T*("!T<GD-"@T*(" @("!,;V=3=&1/=70@/2![3F5W($]P96XN9FEL
M92!I;FET*&YA;64Z<W1D;W5T#0H)"0D)(&9L86=S.EMW<FET92!A<'!E;F1=
M#0H)"0D)(&UO9&4Z(&UO9&4H;W=N97(Z(%MR96%D('=R:71E70T*"0D)"0D@
M(" @9W)O=7 Z(%MR96%D('=R:71E72DI?0T*#0H@(" @($QO9T9I;&4@/2![
M3F5W($]P96XN9FEL92!I;FET*&YA;64Z)V5X96-U=&EO;BYL;V<G#0H)"0D)
M(&9L86=S.EMW<FET92!T97AT(&-R96%T92!A<'!E;F1=#0H)"0D)(&UO9&4Z
M(&UO9&4H;W=N97(Z(%MR96%D('=R:71E70T*"0D)"0D@(" @9W)O=7 Z(%MR
M96%D('=R:71E72DI?0T*(" @(" -"B @(" @4V]L(#T@>U-E87)C:"YB87-E
M+F]N92![3F5G4V-H961U;&EN9R!$871A?7T-"@T*(" @(" @('M,;V=&:6QE
M('=R:71E*'9S.B)$871A($9I;&4Z("(C1&%T82YV97)S:6]N(R)<;B(I?0T*
M(" @(" @(&EF(%-O;"!</2!N:6P@=&AE;@T*(" @(" @(" @('M,;V=&:6QE
M('=R:71E*'9S.B)297-U;'0Z("(C>T-O;G9E<G13;VQN5&]497AT(%-O;'TC
M(EQN7&XB*7T-"B @(" @("!E;'-E#0H@(" @(" @(" @>TQO9T9I;&4@=W)I
M=&4H=G,Z(DYO(%-O;'5T:6]N<R$A7&Y<;B(I?0T*(" @(" @(&5N9 T*#0H@
M(" @(" @)7M396%R8V at N8F%S92YS=&]P?0T*(" @8V%T8V@@6"!T:&5N#0H@
M(" @(" @>TQO9U-T9$]U="!W<FET92AV<SHB(&5X8V5P=&EO;B$B*7T-"B @
M9FEN86QL>0T*(" @(" @('M,;V=3=&1/=70 at 8VQO<V5]#0H@(" @(" @>TQO
M9T9I;&4 at 8VQO<V5]#0H@(&5N9 T*("![07!P;&EC871I;VXN97AI=" P?0T*
)(" -"F5N9 T*
`
end




More information about the mozart-users mailing list