[alloy] 'in' operator doet toevoeging ipv query

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Hoihoi


Ik ben momenteel in Alloy aan het coden, en wil een OV-netwerkje modelleren.
Gaat hardstikke prima, ik heb lijnen en stations (de metro van a'dam modelleer ik).

Dit is mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
sig Lijn 
{
    halte : set Halte,  
    eindStation : set Halte
}


sig Halte 
{
    lijn : set Lijn,
    verbinding : set Halte, //directe verbindingen
    verbinding1overstap : set Halte,//verbindingen met 1 overstap
    verbinding2overstap : set Halte, //verbindingen met 2 overstappen
    bereikbaar : set Halte
}


fact bereikbaar
{
    //eerst de haltes een eigen lijn variabele geven
    all l : Lijn 
    {
        all h : Halte | h in l.halte <=>  l in h.lijn
    }


    //vervolgens gaan we kijken welke haltes bij elkaar in de lijn zitten. Deze zijn dus direct bereikbaar ZONDER overstappen.
    // Deze hebben dan verbinding
    all l1 : Lijn
    {
        all h1,h2: Halte 
        {
            h1 in l1.halte && h2 in l1.halte && h1!=h2  => h2 in h1.verbinding
        }
    }

    
    //verbinding1overstap
    all h1,h2,h3: Halte 
    {
        h2 in h1.verbinding  && h3 in h2.verbinding && h3 !in h1.verbinding && (h1!= h2 && h1!= h3) => h3 in h1.verbinding1overstap 
    }


    //in amsterdam is ALLES met ALLES bereikbaar vermits unlimited overstaps (dus geen 'eilandjes')
    //NOOT: Deze staat uit om de graf zichtbaar te houden

    //bereikbaar=^(verbinding)
    
}


fact bereikbaar2overstap
{

    //verbinding1overstap
    all h1, h2,h3 : Halte 
    {   
            (h2 in h1.verbinding1overstap ) && (h3 in h2.verbinding) => h3 in h1.verbinding2overstap            
    }
    
    
}


Nu valt het op dat in het laatste fact er een en ander misgaat: hij voert "h2 in h1.verbinding1overstap" uit als commando.
Nu is die h1.verbinding1overstap hierna dus leeg.


Dit komt omdat de in operator als set-toevoeging werkt als je een object in set doet, en als vergelijkingsoperator als je set in set doet.

Nu wil ik dus slim van h2 een set maken; hoe kan ik dat het mooiste doen?
(h2+h2-h2) ofzo zal vast kunnen, maar is mi. te goor voor woorden.

Iemand leuk ideetje?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Schopje. Iemand nog een idee?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 22-09 14:26

NDF82

Doomed Space Marine

Ik neem aan dat je software testen aan de uva aan het doen bent. Vraag het aan je docent (jan van e, paul g?). Voor mij is het te lang geleden en ik denk dat de meeste hier op het forum nog nooit alloy gebruikt hebben.

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Lekker late reply.

Inderdaad, helemaal raak.
Probleem is dat het vak niet meer draait (nov. was het) en beiden niet reageren.

Nog steeds aan het klooien en ik krijg het maar niet goed.
Iemand nog ideeen? Anders gaat het maar de mailinglist op.

i3 + moederbord + geheugen kopen?