<p dir="ltr"><br>
Il 28/lug/2015 13:03, "enrico franchi" <<a href="mailto:enrico.franchi@gmail.com">enrico.franchi@gmail.com</a>> ha scritto:<br>
><br>
> Ehm... *se* fosse Python valido, quell'if valuterebbe sempre a vero (a = 3, varrebbe 3) e stamperebbe 3.<br>
> E' un classico baco che si ha in C e linguaggi similari, dove per 1 utilizzo valido e sensato dell'assegnamento come espressione ce ne sono 9 che sono in realta' bachi dove si intendeva fare una comparazione. Come vedi e' piuttosto facile confondersi. :)</p>
<p dir="ltr">Ah ok! L'avevo preso per pseudo-codice.</p>
<p dir="ltr">> fn foo() {<br>
>     println!("baz")<br>
> }<br>
><br>
> Questo funziona, foo ritorna () e non finisce per ;. Mi sono perso quello che intendevi, credo.</p>
<p dir="ltr">In realtà println è una macro ( <a href="https://doc.rust-lang.org/std/macro.println!.html">https://doc.rust-lang.org/std/macro.println!.html</a>) ed espande in un blocco che termina comunque con punto e virgola (non ho scavato a fondo e non sono pratico della sintassi delle macro ma immagino sia "turtles all the way down").</p>
<p dir="ltr">> Ci saranno anche dei linter per PHP, no?<br>
Dovrei dedicarci un po' di tempo in effetti. Io uso syntastic che mi dà solo gli errori palesi di sintassi (analisi statica e basta).</p>
<p dir="ltr">> Dal punto di vista della type theory pero' *hai* bisogno di un bottom type logico. Non necessariamente deve essere esprimibile come un valore: anzi, il problema e' proprio che puoi esprimerlo come un valore.<br>
Concordo.<br>
Nota a margine: tolte le funzioni non-totali non c'è verso di determinare se una funzione non termina vero? (Turing, NP e compagnia bella, immagino).</p>
<p dir="ltr">--<br>
Nadir</p>