[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Adding scoped local set/param declaration to GMPL
From: |
Meketon, Marc |
Subject: |
RE: Adding scoped local set/param declaration to GMPL |
Date: |
Tue, 25 Aug 2020 21:47:51 +0000 |
On a more serious note...
I don’t think local set/param declaration is that useful. In the example
given, you could create a one-dimensional array of sets and params that does
the same thing.
-Marc
-----Original Message-----
From: Help-glpk <help-glpk-bounces+marc.meketon=oliverwyman.com@gnu.org> On
Behalf Of Andrew Makhorin
Sent: Tuesday, August 25, 2020 5:03 PM
To: Domingo Alvarez Duarte <mingodad@gmail.com>; help-glpk@gnu.org
Subject: Re: Adding scoped local set/param declaration to GMPL
On Tue, 2020-08-25 at 22:12 +0200, Domingo Alvarez Duarte wrote:
> Hello !
>
> I'm experimenting with allow local set/param declarations inside
> scoped blocks (for/if/then/else), it's the base to possibly experiment
> further with problem/callback/function declarations you can
> see/experiment with it in this branch
> https://github.com/mingodad/GLPK/tree/local-set-para
> m
> , look at
> https://github.com/mingodad/GLPK/blob/local-set-param/examples/shikaku
> -if.mod
> and
> https://github.com/mingodad/GLPK/blob/local-set-param/examples/test-if
> .mod
> to see it's usage.
>
> ====
>
> for{i in 1..4} {
> printf "now we are at %d\n", i;
> if i mod 2 = 0 then { #assert when missing "= 0"
> param lp := i+10;
> set ls := {1..i+1};
> printf "nested if lp = %d\n", lp;
> display ls;
> }
> param lp := i+20;
> set ls := {1..i+2};
> printf "nested for lp = %d\n", lp;
> display ls;
> }
>
> ====
>
> Any comment/suggestion is welcome !
>
> Cheers !
>
>
>
I guess the next step will be implementation of classes? ;)
________________________________
This e-mail and any attachments may be confidential or legally privileged. If
you received this message in error or are not the intended recipient, you
should destroy the e-mail message and any attachments or copies, and you are
prohibited from retaining, distributing, disclosing or using any information
contained herein. Please inform us of the erroneous delivery by return e-mail.
Thank you for your cooperation.