Aggiorniamo l'how-to precedente per il tracciamento del grafico di un'onda quadra. La difficoltà odierna è dovuta al fatto che la funzione che esprime un'onda quadra ha due diverse espressioni analitiche nel medesimo intervallo di periodicità. Ne consegue l'utilizzo del comando Flatten con le dovute opzioni, per eliminare un assegnato livello di annidamento di fastidiose parentesi.
Come è noto, il grafico di una funzione periodica è ottenuto per traslazione. Fino a quando il numero di intervalli di periodicità non è molto alto, possiamo plottare la funzione attraverso utilizzando l'istruzione Which. Diversamente, conviene generare una lista di intervalli (e relative traslazioni) per un assegnato numero m. Ciò ovviamente viene fatto con l'istruzione Table. Il problema è che Which non "digerisce" le parentesi. In altre parole, non ha l'attributo Listable e non c'è stato modo di assegnarlo (probabilmente per un problema di protezione di variabili). Fortunatamente, Mathematica dispone di un'altra assegnazione condizionata: Piecewise che ignora un qualunque numero di parentesi annidate.