em – elementary math

Una storiella  solo per vecchi;   per tutti, dai;  solo per me 😊

Ero con due compagni di sventura a ravanare di cose di ‘puters e salta fuori che si deve valutare una quantità tipo 437 / 36. Io m’impadronisco del portatile, non mio ma già usato, so cosa c’è, e vado:

12 con il resto di 5. Sì, serviva così, roba di interi. A volte la memoria fa strani scherzi, non ho pensato a bc:

OK, ci sarebbero anche altri modi ma credo basti. C. interviene con “con il Vax si calcolavano direttamente queste espressioni”. Al che mi sono sentito che stavo dicendo “anche da noi”. Notare non “con Linux (o Unix) ma ‘da noi'”.

Per fortuna non hanno chiesto come, non lo ricordavo (la memoria…).

Invece è facile, semplicissimo, somma, sottrazione, moltiplicazione, elevazione a potenza, divisione e modulo (resto):

Le espressioni possono essere più complesse, usando se del caso le parentesi

Da ricordarsi che ^ è sinonimo di *.

Si può fare uno script che renda più amichevole l’espressione? Certo!
Però parecchi dei caratteri che vorremmo utilizzare sono metacaratteri, la shell li interpreta e si dovrebbero escapare. Propongo invece di sostituire le parentesi tonde con le quadre, usare x (o X) per la moltiplicazione e ^ per l’elevazione a potenza. Semplicissimo 3 righe (di cui la seconda raccomandata ma non strettamente necessaria), ecco em:

#!/bin/bash
F=$@
echo $(( `echo $F | sed 's/\^/**/g ; s/x/*/gi ; s/\[/(/g ; s/]/)/g'` ))

Sì, per sed parecchi caratteri sono metacaratteri, da escapare.

Resta un mistero: con il Vax, cioè VMS com’era?

🤢

Posta un commento o usa questo indirizzo per il trackback.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: