TAPAS Theoretical And Practical Aspects of Software - Roma, 26 gennaio 2019 Il primo evento TAPAS si è svolto a Roma ed ha avuto due interventi: uno su Haskell relativo alla generazione dei numeri primi ed uno su Rust riguardante ownership e borrowing. La mailing list di TAPAS è qui, il canale Slack per le discussioni relative a TAPAS è all’interno di quello di Code Garden Roma. Il prof. Salvo ha parlato del suo articolo riguardante la generazione dei numeri primi facendo uso di liste lazy. In particolare ha discusso una soluzione al “Crivello di Eratostene” che fa uso della generalizzazione ai “Numeri di Hamming” per filtrare i primi. Il suo lavoro ha mostrato come Haskell e la lazyness si prestano a definire una corrispondenza molto stretta fra descrizione teorica della soluzione e algoritmo effettivo, per ottenere risultati piu’ efficienti degli algoritmi ottimizati tradizionali. Inoltre ha fatto notare come il compilatore puo’ riservare delle strane sorprese in termini di efficienza… Il riepilogo degli argomenti trattati è questo: Nell’intervento dedicato a Rust si è parlato di come viene gestita la memoria, dei puntatori mutabili ed immutabili. Alla fine si è concordato sul fare un evento TAPAS ogni due mesi.

TAPAS Theoretical And Practical Aspects of Software - Roma, 26 gennaio 2019 Dove: Aula Seminari, III piano, Via Salaria, 113, 00198 Roma RM, Italia Quando: Sabato 26 gennaio 2019 dalle 10:30 alle 12:30 Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza. Cosa faremo: Il seminario si propone di discutere aspetti teorici e tecnologie emergenti nell’ambito dei Linguaggi di Programmazione e creare un punto d’incontro, confronto e discussione tra ricerca accademica e professionisti. Ci saranno tre presentazioni da mezz’ora ciascuna e mezz’ora di tavola rotonda alla fine. Programma: Ivano Salvo: Computazione Lazy: Crivello di Eulero in Haskell (Functional Pearl)

Epifanio: Ownership e borrowing: la gestione della memoria nel linguaggio Rust.

Lorenzo Perticone: Monadi e Monad Transformer.

Tavola rotonda sul futuro del seminario/gruppo su TAPAS. Cosa portare: tanta curiosità e voglia di imparare Grazie a chi: Dipartimento di Informatica Per iscriversi: metooo.io

Haskell Day - Milano, 1 Luglio 2018 Dove: Milano, Via Giulio Venini, 42, 20127 Milano (MI), IT Quando: Domenica 1 Luglio, dalle 10:00 alle 16:00. Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza. Cosa faremo: L’ultimo weekend di Giugno ci incontriamo a Mikamai per condividere le nostre esperienze nello sviluppo con Haskell. Ci saranno anche due ospiti che lavorano in Purescript (e Haskell) molto preparati: Fabrizio Ferrai e Justin Woo. Justin terrà anche una presentazione in inglese: Superior string spaghetti with purescript-jajanmen In this talk, Justin will talk about how PureScript can now parse type level strings by deconstructing them with Symbol Cons and match on overlapping instances using instance chains. With these techniques, he’ll demonstrate how he makes better string spaghetti with his library Jajanmen to synthesize row types from symbols.​ Questa è invece la presentazione di Fabrizio: Purely Functional DevOps with Dhall Functional programming is now mainstream in Software Development. Does the same trend apply to Operations as well? Kind of: the DevOps culture is bringing to the table declarative configurations with Infrastructure-as-Code deployments, but this usually happens by employing either full-fledged programming languages or simple data languages (JSON is nicer to type down than XML, but still)…can we do better? In this talk we’ll see how to avoid Turing-completeness and leverage Dhall - a strongly typed, total functional language - to get safety, modularity and reusability while still being able to do dangerous things like template configurations and spin up cloud machines. Cosa portare: un computer portatile e un ambiente Haskell configurato. Grazie a chi: MIKAMAI e LinkMe che hanno messo a disposizione gratuitamente la sala. Per iscriversi: metooo.io

Haskell-Day Roma (2017-11-18) L’Haskell day autunno 2017 si è svolto a Roma, nei locali di LUISS ENLABS, vicino alla Stazione Termini. Ringraziamo LUISS Enlabs e Codemotion, in particolare Innocenzo Sansone, che ci ha dedicato l’intera giornata, rendendo possibile questo evento. Questo meetup è stato il secondo a tenersi nel centro Italia, dopo Firenze, e ha visto la particepazione di nuovi programmatori decisi ad avvicinarsi ad Haskell. Il gruppo Beginners è stato seguito da Luca, sui passi della presentazione Introduzione ad Haskell (se non c’eravate ma volete una prima infarinatura, potete sempre vedere il video registrato all’edizione bolognese dell’Haskell Day). Dopo la presentazione di Luca, nel gruppo beginners, sotto la guida di Vitalij, Ruggero, Renzo, Francesco e Stefano, sono stati svolti degli esercizi dedicati a list comprehension e alle funzioni di ordine superiore filter, map e foldl: tracce degli esercizi e testi unitari Gli altri partecipanti si sono concentrati su vari progetti, tra cui un interprete scheme sviluppato in Haskell, perfezionamento di un frontend scritto in Elm (un linguaggio cugino di Haskell) e molte riflessioni sullo stato della programmazione funzionale sia pura che per linguaggi orientati su altri paradigmi. Siamo molto soddisfatti dalla nostra prima esperienza romana, sia per aver conosciuto nuovi programmatori funzionali, sia per aver rivisto i partecipanti alle scorse edizioni! Ringraziamo di cuore tutti i partecipanti e contiamo di ritrovarvi tutti presto al prossimo evento!

Haskell Day - Roma, 18 Novembre 2017 Dove: LUISS ENLABS, Via Marsala 29/H, terzo piano, 00185 Roma Quando: Sabato 18 Novembre, dalle 09:00 alle 18:00. Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza. Cosa faremo: lavoreremo in gruppi (2-6 persone circa) su diversi progetti. Ogni persona può scegliere il progetto che vuole, saranno date delle indicazioni sul livelo di conoscenza richiesto per contribuire. Lo scopo è provare a utilizzare Haskell per un progetto concreto, “toccare con mano” il modo di lavorare altrui e di condividere le esperienze nelle numerose pause di gruppo. Lo scopo è puramente didattico, quindi nessuna ansia. Cosa portare: un computer portatile e un ambiente Haskell configurato. Grazie a chi: Codemotion in particolare Innocenzo Sansone

LUISS ENLABS Per iscriversi: eventbrite.it

Cabal new-build Il nostro fgaz (Francesco Gazzetta) ha terminato il suo progetto per “The Haskell Summer of Code” su cabal new-build e quì c’è una interessante retrospettiva. Dopo averla letta ho realizzato di quante cose diamo per scontate, ma nascondono dietro una mole impressionante di lavoro.

Haskellism Un mio rant su #haskell-it sull’illegibilità di certo codice Haskell avanzato, termina con una sfida: “c’è un qualche esempio di codice Haskell complesso ma chiaro?”. La risposta è https://github.com/aurapm/aura Inizia la sfida: vediamo se un programmatore Object-Oriented come me, senza una laurea in matematica e categoria delle teorie, e che parte prevenuto, lo riesce a capire! :-) Read More

Haskell-Day Inverno a Milano (2017-02-25) Per questo meeting ci siamo ritrovati a Milano in Venini 42, gentilmente ospitati da Mikamai e LinkMe. I progetti Beginners Il gruppo di chi ha deciso di avvicinarsi al linguaggio è stato seguito da Luca, procedendo lungo la traccia della presentazione “Introduzione ad Haskell”. Durante la giornata le nuove leve hanno svolto esercitazioni sulla definizione di nuovi tipi, implementato Type Class e intuito così la definizione di Monade. Haskell Internals Titto ha illustrato la problematica dell’ottimizzazione e dell’efficienza in Haskell e gli strumenti per risolvere questo problema. Partendo da un esempio concreto (una serializzazione di dati sfruttando i generics), il gruppo ha visto come dare indicazioni efficaci al compilatore e come varia l’efficienza all’aumentare della complessità dei tipi. Gran parte del tempo è stata impiegata commentando e analizzando Core, il linguaggio generato dal compilatore come passo intermedio fra il programma Haskell e il codice binario. Reflex Carlo ha presentato la libreria FRP Reflex, illustrandone i tipi di base, il paradigma di funzionamento e le potenzialità. Il gruppo ha installato reflex-dom attraverso nix e svolto un piccolo esempio per vedere Reflex in azione. Web service Un gruppo di livello intermedio si è focalizzato sulla realizzazione di un webservice usando il framework Servant. La API Rest proposta era molto semplice, affinché fosse possibile realizzarne una implementazione completa nel limitato tempo a disposizione, potendosi quindi rendere conto della maggior parte degli aspetti tecnici legati a un lavoro di questo tipo: definizione delle rotte e dei controller ad esse legati, mantenimento dello stato del server (per semplicità si è optato per una MVar anziché usare un database esterno), codifica dell’output del servizio. A metà pomeriggio si aveva un prototipo funzionante, e i più avventurosi si sono addirittura cimentati nella scrittura di un frontend con Elm. Il codice prodotto è disponibile su github.