Julia – 119 – Standard Library – con l’abbozzo di una prima prova

Continuo da qui, copio qui.

Il manuale –ottimo– a questo punto ha un capitolo che è una lunga lista di codici Unicode. OK, io quando posso li evito, tranne le vocali accentate, e pochi altri, p.es ç e . E non si usano nella programmazione (quasi mai). Comunque là c’è parecchio, quasi tutto.

Poi si passa alla descrizione dettagliata di tutti i componenti del linguaggio, cominciando dalla Standard Library.

The Julia standard library contains a range of functions and macros appropriate for performing scientific and numerical computing, but is also as broad as those of many general purpose programming languages. Additional functionality is available from a growing collection of available packages. Functions are grouped by topic below.

Questa è una pagina da tener sempre a un click di distanza nel browser, a complemento dell’help presente nella REPL.

Come tutta la documentazione è fatta in modo esemplare, mica devo aggiungere altro vero? 😊

Anzi no, alcune considerazioni mie –solo mie. Sto provando a implementare in Julia un programmino non troppo lungo e relativamente privo di difficoltà. È una cosa che si dovrebbe fare con Python; nelle organizzazioni molto piccole conviene standardizzare, non duplicare i tools (in questo caso i linguaggi) a meno di condizioni che lo richiedano. E Julia attualmente può essere considerato un doppione di Python (o di altri linguaggi). Inoltre è giovane, presumibilmente in rapida evoluzione, forse cambieranno cose che renderanno oneroso l’aggiornamento (questo capita da sempre con tutti i linguaggi). Ma ci sto provando, magari ne riparlerò.

Julia ha, rispetto a Python, delle particolarità interessanti, per esempio la gestione (lo stress) dei tipi. Interessantissima la gestione delle funzioni, oltre alle cose nuove ce ne sono di ereditate da altri linguaggi (Lisp e Fortran).

Per me che sono vecchio devo perdere vecchie abitudini (Fortran e Basic), per esempio come gestire l’I/O.

Il modo antico è di aprire i files di input e output, e ciclare a leggere quanto serve, processarlo e scrivere il risultato e infine chiudere i files aperti. Esempio, file io-seq.jl:

fname = "testo" # file di input
fout = "out"    # file di output

id = open(fname, "r")
od = open(fout, "w")

while !eof(id)
    st = readline(id)
    println(od, uppercase(st))
end

close(id)
close(od)

Codice vecchio, vero? in particolare la riga while !eof(id) che cicla se non si è raggiunto l’end-of-file di id. Lo stesso codice come minimo si dovrebbe scrivere così (io-seq-n.l):

fname = "testo" # file di input
fout = "out"    # file di output

id = open(fname, "r")
od = open(fout, "w")

for line in eachline(id)
    println(od, uppercase(line))
end

close(id)
close(od)

ottenendo lo stesso risultato.

Ma si può fare di meglio. Salvo che il caso in cui il file dei dati sia davvero enorme conviene leggerlo in blocco e poi elaborarne i dati (ovviamente non sempre ma spesso conviene). Ecco io-blocco.jl:

fname = "testo" # file di input
fout = "out"    # file di output

id = open(fname, "r")
txt = readlines(id)
close(id)

println("Lette ", length(txt), " righe")

od = open(fout, "w")
println(od, "prima riga: " * txt[1])
println(od, "terza riga, maiuscola: " * uppercase(txt[3]))
close(od)

OK, mi ero dimenticato che per concatenare le stringhe si usa *.

Questo è solo l’inizio, bisogna prenderci la mano ma si può fare! 😁

Ah! ancora una cosa, grazie (10^3) a tutti gli autori, qui, qui e qui 😁

🤩

Posta un commento o usa questo indirizzo per il trackback.

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: