I found a way: :- compile('persons2'). :- import p2m. main :- top( [ person{name:philippe,age:53,ba:bank_account{bal:1000}} ], PMBL), writeln(PMBL). > Le 5 sept. 2017 à 19:55, Philippe de Rochambeau <phiroc_at_...22...> a écrit : > > > Hi, > > let’s say, I have another .pl file with the following contents: > > -------- > > :- compile('persons2'). > > :- import p2m. > > top( > [ > person{name:philippe,age:53,ba:bank_account{bal:1000}} > ], > PMBL). > > ————— > > How do I make ECLIPSe display PMBL’s value? > > Best regards, > > Philippe > > >> Le 5 sept. 2017 à 11:47, Kish Shen <kish.shen_at_...6... <mailto:kish.shen_at_...6...>> a écrit : >> >> Hi Philippe, >> >> The module qualification :/2 is for predicates only. To use the other exported items, you need to import the module: >> >> [eclipse 2]: import p2m. >> >> Yes (0.00s cpu) >> >> you can then use exported items from p2m unqualified: >> >> [eclipse 6]: top([person{name:philippe,age:53,ba:bank_account{bal:1000}}],PMBL). >> >> PMBL = [1000] >> Yes (0.00s cpu) >> >> Cheers, >> >> Kish >> >> >> >> >> >> On Tue, Sep 5, 2017 at 7:21 AM, Philippe de Rochambeau <phiroc_at_...22... <mailto:phiroc_at_...22...>> wrote: >> Hello, >> >> I’m having an issue with an exported structure: >> >> When I run >> >> >> p2m:top( >> [ >> p2m:person{name:philippe,age:50,p2m:ba:bank_account{bal:1000}} >> ],PMBL). >> >> >> I get the below warnings. >> >> Any help would be much appreciated. >> >> Philippe >> >> >> >> ————— >> >> WARNING: Unrecognized structure name in module eclipse in >> bank_account{bal : 1000} >> WARNING: Unrecognized structure name in module eclipse in >> person{name : philippe, age : 53, p2m : ba : bank_account{bal : 1000}} >> >> PMBL = [] >> Yes (0.00s cpu) >> [eclipse 15]: p2m:top( >> [ >> p2m:person{name:philippe,age:53,p2m:ba:bank_account{bal:1000}} >> ],PMBL). >> WARNING: Unrecognized structure name in module eclipse in >> bank_account{bal : 1000} >> WARNING: Unrecognized structure name in module eclipse in >> person{name : philippe, age : 53, p2m : ba : bank_account{bal : 1000}} >> >> PMBL = [] >> Yes (0.00s cpu) >> >> >> ------------- >> >> ——————————— code —————————————— >> >> >> /* >> Find people whose balance is above a certain limit. >> */ >> >> :- module(p2m). >> :- export top/2. >> :- export filterBalance/3. >> :- export top/2. >> :- lib(ic). >> :- export struct(bank_account(bal)). >> :- export struct(person(name,age,ba:bank_account)). >> >> top(FamilyList, PersonsMatchingBalanceLimit) :- >> BalanceLimit = 0, >> filterBalance(BalanceLimit, FamilyList, Ys), PersonsMatchingBalanceLimit = Ys. >> >> filterBalance(BalanceLimit, Family, Ys) :- >> ( >> % foreach person in family >> foreach(Person,Family), >> fromto(Ys,Ys2,Ys1,[]), >> param(BalanceLimit) >> do >> ( >> person{ba:Bal} = Person, >> arg(1, Bal, Bal2), >> Bal2 #>= BalanceLimit -> Ys2=[Bal2|Ys1] ; >> Ys2=Ys1 >> ) >> ). >> >> >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org <http://slashdot.org/>! http://sdm.link/slashdot <http://sdm.link/slashdot> >> _______________________________________________ >> ECLiPSe-CLP-Users mailing list >> ECLiPSe-CLP-Users_at_lists.sourceforge.net <mailto:ECLiPSe-CLP-Users_at_...309...sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users <https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users> >> >> >Received on Tue Sep 05 2017 - 18:41:30 CEST
This archive was generated by hypermail 2.3.0 : Wed Sep 25 2024 - 15:13:21 CEST