Publicații conexe 'haskell'


Alergând cu Monade
Am avut o mare piatră de poticnire în învățarea monadelor. Poate deloc surprinzător, acest lucru s-a întâmplat pentru că încercam să duc o anumită analogie monadică prea departe în clasa de la facultate unde am aflat pentru prima dată despre ei. Mi-a venit ideea că „Monadele sunt ca un cufăr de comori”, iar modelul meu mental a mers cam așa: Monadele sunt ca un cufăr de comori. Nu puteți accesa direct ceea ce este înăuntru ( a în IO a ). Adică dacă nu ești deja în acea monada. În..

Haskell I: Istoric, utilizare și configurare
Cum și de ce există Haskell? Aflați cum să configurați VS Code pentru o experiență mai bună! Recent am ascultat podcastul Algoritmi + Structuri de date = Programe , iar într-unul dintre episoade, nu-mi amintesc care, s-a vorbit mult despre îmbunătățirea codului tău. Și „Conor Hoekstra” (presupun că ar fi putut fi și „Bryce Adelstein”, oricum) vorbea despre modul în care învățarea lui Haskell a îmbunătățit modul în care gândește și scrie cod, așa că am decis să învăț limba ca o..

Folosind Nix pentru a prelua bibliotecile C!
În ultimele două săptămâni, am început să ne udăm picioarele cu Managerul de pachete Nix . „Ultima dată” am folosit cabal2nix pentru a converti un proiect pur Cabal într-un proiect Nix. Acest lucru a demonstrat cum am putea obține dependențele noastre Haskell de la magazinul Nix dacă dorim. Dar una dintre virtuțile lui Nix este că are mult mai mult decât pachetele Haskell! Uneori, s-ar putea să folosim un pachet care are o dependență mai complicată, cum ar fi o bibliotecă C. Nu..

Prinderea înainte de producție: afirmații în Haskell
Am petrecut mult timp în această lună analizând excepții, care sunt modalități de a semnala în cadrul programului nostru că s-a întâmplat ceva neașteptat. Acestea vor duce adesea la o terminare anticipată a programului nostru, chiar dacă le prindem. Dar prin surprinderea lor, putem oferi de obicei mesaje de eroare și jurnale mai utile. Excepțiile sunt destinate utilizării în codul de producție. Nu doriți ca ele să dispară vreodată, dar sunt acolo. Cu toate acestea, există și alte..

guessing_game: urmărire
Am primit câteva comentarii la postările mele anterioare Rust (pe Medium și pe LJ-ul meu în limba rusă). Apreciez răspunsurile, mi-au clarificat câteva lucruri în Rust. Fără cursuri Toate funcțiile asociate nu aparțineau nici unei clase. De fapt, Rust nu are cursuri. Funcțiile asociate pot returna obiecte (variabile) de tip dat, dar acestea nu sunt instanțe ale vreunei clase, au doar tipuri. Aceasta este o problemă de înțeles, deoarece m-am obișnuit cu ideea python de „totul este o..

Folosind Fie ca monada
Acum că februarie s-a terminat și că suntem în martie, este timpul pentru „Luna Monadelor”! Pe parcursul lunii următoare, voi oferi câteva sfaturi utile despre diferite moduri de a folosi monade. Astăzi voi începe cu o observație simplă: tipul Either este o monada! Multă vreme, am folosit Either ca și cum ar fi fost doar un tip normal, fără reguli speciale. Dar comportamentul său monadic ne permite să înlănțuim mai multe calcule cu el cu ușurință! Să începem de la început. Cum..

Ce este nou în Cross Compiling Haskell
Ediția octombrie După anunțul și lansarea previzualizărilor experimentale ale compilatorului încrucișat ca distribuții binare „luna trecută”, s-a dovedit că distribuțiile binare produse de sistemul make base build nu au fost ceea ce am sperat. „GHC 8.4.1” este la colț (lansare în februarie 2018. Închideți ramura de lansare în noiembrie 2017.) și va veni cu un nou sistem de construire bazat pe „shake” numit „hadrian”, care a fost în dezvoltare de ceva timp. . Planul – cred – este că..