In primo luogo, sembra Python.
In secondo luogo, cose come Tall non sono necessariamente riflessive. Assumiamo come parte della nostra sintassi:
-
is
può essere un operatore infisso che imposta un attributo oggetto, ad es. Jake is Tall
rende Jake.Tall True
-
is
può essere un operatore di prefisso che verifica la precisione di un attributo.
- Essere sopra i 185 cm è alto
Quindi iniziamo:
Jake <= Person(name="Jake")
Jake is Tall
print(is Jake Tall)
>>> True
Tutto va bene, ma questo introduce problemi.
print(Jake.height)
Sappiamo che Jake è alto, ma quanto è alto?
Ancora una volta:
Jake <= Person(name="Jake",height=199)
Jake is Tall
print(is Jake Tall)
Che cosa stampiamo qui?
Ora, abbiamo detto che Jake è inferiore a 200 cm, quindi non è alto, ma ha anche dichiarato esplicitamente di essere alto. Possiamo iniziare a introdurre la logica in modo che quando chiamiamo Tall contro una persona controlliamo lo stato Tall
o l'attributo height
, ma le incongruenze logiche sono difficili.
Quello che puoi fare è simile a ciò che Python fa con la sua dichiarazione is
, e usarlo per controllare uno stato, piuttosto che impostarlo.
Quindi potremmo andare:
Jake <= Person(name="Jake",height=199)
if Jake is Tall {
print("How is the weather up there?")
} else {
print("Need a ladder?")
}
>>> Need a ladder?
Questa sintassi potrebbe quindi essere solo una scorciatoia di Jake.isTall o qualsiasi numero di correttori di attributi.