Stili
Convenzioni Tipografiche
Convenzioni e Tipografia
Quando un codice sorgente viene tradotto in un programma eseguibile, molte parti vengono semplicemente ignorate.
Oltre ai commenti, anche l’impaginazione, cioè la disposizione del testo sullo schermo, è ignorata.
Per il compilatore, nella maggior parte dei linguaggi, i due codici riportati sotto sono del tutto equivalenti:
use List::Util qw(reduce); sub fact { my $n = shift; reduce { $a * $b } 1, 1 .. $n } foreach my $i (0..16) { print "$i! = ", fact($i), "\n"; }E quest’altro:
use List::Util qw(reduce);sub fact{my $n=shift;reduce{$a*$b}1,1..$n}foreach my $i(0..16){print "$i!=",fact($i),"\n";}
Ma è evidente che per un programmatore medio il primo codice è leggibile, mentre il secondo è più complesso.
Probabilmente chi legge una poesia oggi non sa, o non ricorda, che la maniera di impaginarla, che oggi è considerata normale, è frutto di una storia precisa.
Sempre caro mi fu quest'ermo colle,Ad esempio i Latini non usavano gli spazi e andavano avanti fino alla fine della pietra; al contrario, i Futuristi forzavano la disposizione delle parole nella pagina per uscire da ogni schema; oppure andavano a capo a piacere, anche dopo una sola parola:e questa siepe, che da tanta parte
dell'ultimo orizzonte il guardo esclude.
Ma sedendo e mirando, interminati
spazi di là da quella, e sovrumani
silenzi, e profondissima quiete
io nel pensier mi fingo; ove per poco
il cor non si spaura. E come il vento
[...]
Clof, clop, cloch,cloffete,
cloppete,
clocchette,
chchch...
È giù,
nel cortile,
la povera
fontana
malata;
che spasimo!
[...]
Gli spazi aggiuntivi all’inizio della riga sono un’invenzione moderna che aggiunge solo leggibilità. E così vengono usati nella maggior parte dei linguaggi di programamzione.
Invece alcuni linguaggi particolari, come il Python, non usano le parentesi per indicare dove comincia e finisce un blocco, ma usano l'indentazione come elemento sintattico. Il codice che segue è corretto solo se ci sono quel certo numero di spazi prima di if, body, else e data:
for a in pa: if isinstance(a, basestring): body = '%s%s' % (body, a) else: data.update(a)
Prossimo pannello: ⇨ Commenti
© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC
Versione: 02/02/2022 - 08:58:54
Parole: 220Pannelli
Stili |
Convenzioni Tipografiche |
Commenti |
Altri commenti |
Literate programming |
Paradigmi |
Nomi |
Manuali |