Integrated Dynamics - On the Dynamics of Integration

Operatorvärden

I Integrated Dynamics är operatorer vad som inom programmering kallas "first-class citizens". Fram tills nu har vi bara använt logikprogrammeraren manuellt, men i denna handledning ska vi titta på hur den kan användas på ett mer dynamiskt sätt genom att lagra operatorer i variabelkort och anropa dem dynamiskt.

Börja med att gå till logikprogrammeraren och skapa en ny statisk operator genom att börja skriva operatorn addition (aritmetisk) i rullgardinslisten och klicka på den, och skriva den till ett variabelkort. Skapa sedan två variabler av typen heltal. Hitta sedan operatorn tillämpa och tillämpa det första heltalet i operatorn, som kommer att binda det första inmatningsargumentet för additionsoperatorn till detta heltal och kommer mata ut en ny operator med ett återstående inmatningsargument. Använd sedan operatorn tillämpa igen för att binda det sista inmatningsargumentet för den nya operator som skapades. Använd till sist en skärmpanel för att visa din dynamiskt anropade addition.

Sedan för att tillämpa operatorer finns det många andra avancerade operatorsoperationer. Vi kommer nu ta en titt på hur man använder operatorerlistor, eller mer specifikt filtret operator som tar en lista och ett predikat (en operator med ett inmatningsargument och ett booleskt utmatningsvärde). Börja med att skapa en lista med heltalen 1, 10 och 100. Lagra sedan operatorn lika med (relationell) i en variabel. Tillämpa denna operator på heltalet 10. Använd operatorn filter med din lista och den tillämpade operatorn. Detta kommer att filtrera bort alla föremål från listan som returnerar falskt genom att tillämpa dem på den angivna operatorn, som i detta fall innebär att alla element som inte är likadana som 10 kommer att tas från listan. Visa resultatet på en skärmpanel.

Det finns många andra operationer på operatorer, som att kombinera predikat, vända operatorsargument och fler operationer på listor.

Operator
Lika med==Typ ett och två måste vara likadana.
  • §rAlla§0
  • §rAlla§0
  • Boolesk
Global name: anyEquals(§rAlla§0, §rAlla§0) → BooleskMethod name: §rAlla§0.equals(§rAlla§0) → Boolesk
Operator
FilterfilterFiltrera en lista över element genom att matcha alla med det angivna predikatet.
  • Operator
  • Lista
  • Lista
Global name: operatorFilter(OperatorLista) → ListaMethod name: Operator.filter(Lista) → Lista
Operator
TillämpaapplyTillämpar ett angivet värde för en angiven operator.
  • Operator
  • §rAlla§0
  • §rAlla§0
Global name: operatorApply(Operator, §rAlla§0) → §rAlla§0Method name: Operator.apply(§rAlla§0) → §rAlla§0
Advancements
  • Dynamiska additionerAnropa additionsoperatorn dynamiskt
  • Dynamisk listfiltreringFiltrera en heltalslista med 1, 10 och 100 till 10.
Rewards
Variabelkort64
Variabelkort64
Variabelkort64
Variabelkort64