
José A. Alonso
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Non-Obvious Haskell Idiom: Conditional For
https://entropicthoughts.com/non-obvious-haskell-idiom-conditional-for
Discussions: https://discu.eu/q/https://entropicthoughts.com/non-obvious-haskell-idiom-conditional-for
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Haskell recap for week 12/2025
https://discu.eu/weekly/haskell/2025/12/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@Jose_A_Alonso@mathstodon.xyz
Exercitium (Un reto diario de programación). https://jaalonso.github.io/exercitium/about #Exercitium #Haskell #ProgramaciónFuncional
@haskell@fosstodon.org
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
[ANN] GHCup 0.1.50.0 released - Announcements
https://discourse.haskell.org/t/ann-ghcup-0-1-50-0-released/11695
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/ann-ghcup-0-1-50-0-released/11695
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Valores de polinomios representados con vectores. https://jaalonso.github.io/exercitium/posts/2014/05/08-valor_de_un_polinomio/ #Haskell #ProgramaciónFuncional #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 22, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/22-readings_shared_03-22-25 #Calculemus #FunctionalProgramming #Haskell #IsabelleHOL #LeanProver #Math
@dilawar@fosstodon.org
An underappreciated feature of #rust is that Rust code found in the wild is very much likely to work and is of good quality. The crate doesn't have to be super mature!
My experience with #rust code in the wild is much much better than JS or python code which is not suprising if you think about it. Programmers coding in
"hard" languages generally write better code? Perhaps same thing is with #Haskell and #TexLatex ?
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Segmentos maximales con elementos consecutivos. https://jaalonso.github.io/exercitium/posts/2014/05/07-segmentos_consecutivos/ #Haskell #ProgramaciónFuncional
@haskell_discussions@mastodon.social
GHC String Interpolation - Final Call for prototypes
@Jose_A_Alonso@mathstodon.xyz
Learn Haskell by example. ~ Phillip Hagenlocher. https://books.google.com/books?id=n38pEQAAQBAJ #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Non-obvious Haskell idiom: Guard-sequence. ~ kqr. https://entropicthoughts.com/non-obvious-haskell-idiom-guard-sequence #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
US to limit Canadian access to built on border Haskell Free Library & Opera House
@haskell_discussions@mastodon.social
[Well-Typed] GHC activities report: December 2024-February 2025
https://www.well-typed.com/blog/2025/03/ghc-activities-report-december-2024-february-2025/
Discussions: https://discu.eu/q/https://www.well-typed.com/blog/2025/03/ghc-activities-report-december-2024-february-2025/
@Jose_A_Alonso@mathstodon.xyz
Curso "Programación declarativa (2008-09)". https://jaalonso.github.io/cursos/pd-08 #ProgramaciónFuncional #Haskell #ProgramaciónLógica #Prolog
@Jose_A_Alonso@mathstodon.xyz
A hundred pull requests for Liquid Haskell. ~ Facundo Domínguez. https://www.tweag.io/blog/2025-03-20-lh-release/ #Liquid #Haskell #FunctionalProgramming #SMT
@Jose_A_Alonso@mathstodon.xyz
A hundred pull requests for Liquid Haskell. ~ Facundo Domínguez. https://www.tweag.io/blog/2025-03-20-lh-release/ #Liquid #Haskell #FunctionalProgramming #SMT
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 20, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/20-readings_shared_03-20-25 #FunctionalProgramming #Haskell #IsabelleHOL #LeanProver #Math
@haskell_discussions@mastodon.social
haskell-dev-env - An opinionated pre-built Dev Container for Haskell
https://github.com/marijnvanwezel/haskell-dev-env
Discussions: https://discu.eu/q/https://github.com/marijnvanwezel/haskell-dev-env
@DiazCarrete@hachyderm.io
I wonder if initiatives like the Haskell Error Index https://errors.haskell.org/ become more important now that we have AI coding assistants that can potentially access the error descriptions in order to steer themselves.
@haskell_discussions@mastodon.social
Non-Obvious Haskell Idiom: Guard-Sequence
https://entropicthoughts.com/non-obvious-haskell-idiom-guard-sequence
Discussions: https://discu.eu/q/https://entropicthoughts.com/non-obvious-haskell-idiom-guard-sequence
@haskell_discussions@mastodon.social
Open Source at Bellroy: Supporting Old GHC Versions
https://exploring-better-ways.bellroy.com/open-source-at-bellroy-supporting-old-ghc-versions.html
Discussions: https://discu.eu/q/https://exploring-better-ways.bellroy.com/open-source-at-bellroy-supporting-old-ghc-versions.html
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Making a multiplayer action game in Haskell
https://gitlab.com/-/snippets/4817016
Discussions: https://discu.eu/q/https://gitlab.com/-/snippets/4817016
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Haskell debugging in Neovim with breakpoints is giving error
https://www.reddit.com/r/neovim/comments/1jcdxgc/comment/mi1h56e/?context=3
Discussions: https://discu.eu/q/https://www.reddit.com/r/neovim/comments/1jcdxgc/comment/mi1h56e/?context=3
@Jose_A_Alonso@mathstodon.xyz
Curso "Programación declarativa (2007-08)". https://jaalonso.github.io/cursos/pd-07 #ProgramaciónFuncional #Haskell #ProgramaciónLógica #Prolog
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Suma si todos los valores son justos. https://jaalonso.github.io/exercitium/posts/2014/05/01-suma_si_todos_justos/ #Haskell #ProgramaciónFuncional
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 17, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/17-readings_shared_03-17-25 #FunctionalProgramming #Haskell #IsabelleHOL #Logic #Math
@haskell_discussions@mastodon.social
Haskell Interlude 63: Farhad Mehta
https://haskell.foundation/podcast/63/
Discussions: https://discu.eu/q/https://haskell.foundation/podcast/63/
@haskell_discussions@mastodon.social
[ANN] Copilot 4.3
Discussions: https://discu.eu/q/https://github.com/nasa/ogma
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Haskell recap for week 11/2025
https://discu.eu/weekly/haskell/2025/11/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@Jose_A_Alonso@mathstodon.xyz
The calculated typer. ~ Zac Garby, Patrick Bahr, Graham Hutton. https://bahr.io/pubs/files/calctyper-paper.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 16, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/16-readings_shared_03-16-25 #FunctionalProgramming #Haskell #Math #Programming #Python
@haskell_discussions@mastodon.social
[ANN] bearlibterminal v0.1 - Haskell bindings to the BearLibTerminal graphics library for roguelike games.
http://foo.wyrd.name/en:bearlibterminal
Discussions: https://discu.eu/q/http://foo.wyrd.name/en:bearlibterminal
@GerryT@mastodon.social
Share of programming languages used by #GTK3 / #GTK4 applications (2025-03-16):
28% #Python
21% #Vala
20% #Rust
17% #C
06% #C++ #Cplusplus
06% #gjs #Javascript
04% Other: #Csharp #Go #Lua #Haskell #Swift #Typescript #Crystal #Swift #D #Perl
63% use GTK4 (90% of them use #libadwaita), while still 37% use GTK3
Method: Source [1] lists 543 awesome #gtk (3/4) #opensource applications and their #programminglanguage
[1] https://github.com/valpackett/awesome-gtk
@Jose_A_Alonso@mathstodon.xyz
@GerryT@mastodon.social
Share of programming languages used by #GTK3 / #GTK4 applications (2025-03-16):
28% #Python
21% #Vala
20% #Rust
17% #C
06% #C++ #Cplusplus
06% #gjs #Javascript
04% Other: #Csharp #Go #Lua #Haskell #Swift #Typescript #Crystal #Swift #D #Perl
63% use GTK4 (90% of them use #libadwaita), while still 37% use GTK3
Method: Source [1] lists 543 awesome #gtk (3/4) #opensource applications and their #programminglanguage
[1] https://github.com/valpackett/awesome-gtk
@haskell_discussions@mastodon.social
Using lens-aeson to implement FromJSON
https://magnus.therning.org/2025-03-16-using-lens-aeson-to-implement-fromjson.html
Discussions: https://discu.eu/q/https://magnus.therning.org/2025-03-16-using-lens-aeson-to-implement-fromjson.html
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
[ANN] First release candidate for Stack 3.5.1
https://github.com/commercialhaskell/stack/releases/tag/rc/v3.5.0.1
Discussions: https://discu.eu/q/https://github.com/commercialhaskell/stack/releases/tag/rc/v3.5.0.1
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Primos consecutivos con media capicúa. https://jaalonso.github.io/exercitium/posts/2014/04/28-primos_consecutivos_con_media_capicua/ #Haskell #FunctionalProgramming #Math
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Aztecs v0.10: A modular game-engine and ECS for Haskell (now with a simpler design featuring applicative queries and monadic systems)
https://github.com/aztecs-hs/aztecs
Discussions: https://discu.eu/q/https://github.com/aztecs-hs/aztecs
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Curry: A Truly Integrated Functional Logic Programming Language
Discussions: https://discu.eu/q/https://curry-lang.org
@haskell_discussions@mastodon.social
A Short Survey on Type-Driven Development Tools
https://tudelft.fra1.qualtrics.com/jfe/form/SV_bIsMxYTKUJkhVuS
Discussions: https://discu.eu/q/https://tudelft.fra1.qualtrics.com/jfe/form/SV_bIsMxYTKUJkhVuS
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Determinación de los elementos minimales. https://jaalonso.github.io/exercitium/posts/2014/04/24-elementosminimales/ #Haskell #FunctionalProgramming #Math
@Jose_A_Alonso@mathstodon.xyz
The Haskell Unfolder Episode 40: Understanding through a model. ~ Edsko de Vries, Andres Löh. https://www.youtube.com/live/0QTt2W7CVnA #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
The Haskell Unfolder Episode 40: understanding through a model
https://www.youtube.com/watch?index=40&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=0QTt2W7CVnA
Discussions: https://discu.eu/q/https://www.youtube.com/watch?index=40&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=0QTt2W7CVnA
@haskell_discussions@mastodon.social
LambdaConf's schedule has a couple of Haskell talks. Anyone going?
https://www.lambdaconf.us/schedule
Discussions: https://discu.eu/q/https://www.lambdaconf.us/schedule
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: La bandera tricolor. https://jaalonso.github.io/exercitium/posts/2014/04/23-bandera_tricolor/ #Haskell
@h4ckernews@mastodon.social
The State of Coherence in the Land of Type Classes
https://programming-journal.org/2025/10/15/
#HackerNews #TheStateOfCoherence #TypeClasses #Haskell #ProgrammingTechniques #SoftwareDevelopment
@h4ckernews@mastodon.social
The State of Coherence in the Land of Type Classes
https://programming-journal.org/2025/10/15/
#HackerNews #TheStateOfCoherence #TypeClasses #Haskell #ProgrammingTechniques #SoftwareDevelopment
@Jose_A_Alonso@mathstodon.xyz
@ipxfong@mastodon.sdf.org
I think I love list comprehensions in Haskell. #haskell
@ipxfong@mastodon.sdf.org
I think I love list comprehensions in Haskell. #haskell
@ipxfong@mastodon.sdf.org
I think I love list comprehensions in Haskell. #haskell
@lobsters@mastodon.social
Making a multiplayer action game in Haskell https://lobste.rs/s/hoirtg #games #haskell
https://gitlab.com/-/snippets/4817016
@lobsters@mastodon.social
Making a multiplayer action game in Haskell https://lobste.rs/s/hoirtg #games #haskell
https://gitlab.com/-/snippets/4817016
@jnpn@mastodon.social
@jnpn@mastodon.social
@haskell_foundation@mastodon.social
Today the Haskell Foundation is migrating some of our server infrastructure and upgrading our storage. 💪 #haskellfoundation #haskell
@haskell_foundation@mastodon.social
Today the Haskell Foundation is migrating some of our server infrastructure and upgrading our storage. 💪 #haskellfoundation #haskell
@kosmikus@functional.cafe
Tomorrow, 2025-03-12, at 1930 UTC (note: one hour later than usual in Canada / US due to asynchronous DST shifts), there'll be a new episode of the #Haskell #Unfolder, titled "understanding through a model". We'll talk about QuickCheck and convolutions ...
https://www.youtube.com/watch?v=0QTt2W7CVnA&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&index=40
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Ordenación por el máximo. https://jaalonso.github.io/exercitium/posts/2014/04/22-ordenados_por_maximo/ #Haskell
@haskell_discussions@mastodon.social
Making a multiplayer action game in Haskell
https://gitlab.com/-/snippets/4817016
Discussions: https://discu.eu/q/https://gitlab.com/-/snippets/4817016
@haskell_discussions@mastodon.social
Making a multiplayer action game in Haskell
https://gitlab.com/-/snippets/4817016
Discussions: https://discu.eu/q/https://gitlab.com/-/snippets/4817016
@haskell_discussions@mastodon.social
Making a multiplayer action game in Haskell
https://gitlab.com/-/snippets/4817016
Discussions: https://discu.eu/q/https://gitlab.com/-/snippets/4817016
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Your friendly neighborhood queer Haskell enthusiast is writing a compiler
Discussions: https://discu.eu/q/https://www.twitch.tv/nicuveo
@haskell_discussions@mastodon.social
Stage Fright Peeled Away: Writing the 'peel' Function with Template Haskell
https://free.cofree.io/2025/03/10/template-haskell/
Discussions: https://discu.eu/q/https://free.cofree.io/2025/03/10/template-haskell/
@haskell_discussions@mastodon.social
Get started with Bluefin
https://www.youtube.com/watch?v=2g5ZZRN2LZE
Discussions: https://discu.eu/q/https://www.youtube.com/watch?v=2g5ZZRN2LZE
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Iguales al siguiente. https://jaalonso.github.io/exercitium/posts/2014/04/21-iguales_al_siguiente/ #Haskell
@hongminhee@hollo.social
Just what the internet needed: another attempt to explain #monads! 🙄 But this time I'm comparing #Haskell and #OCaml approaches to show why #typeclasses make all the difference. Turns out those JavaScript Promise
analogies only tell half the story…
@hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
@lobsters@mastodon.social
Hell (Haskell shell) via @hadronized https://lobste.rs/s/f6frhd #haskell #programming
https://chrisdone.com/posts/hell-year-in-review-2025/
@hongminhee@hollo.social
Just what the internet needed: another attempt to explain #monads! 🙄 But this time I'm comparing #Haskell and #OCaml approaches to show why #typeclasses make all the difference. Turns out those JavaScript Promise
analogies only tell half the story…
@hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
またまた世界にモナドの解説が増えてしまいました。😅 今回はHaskellとOCamlのアプローチを比較して、型クラスがどれだけ重要な違いを齎すかに就いて書いてみました。JavaScriptのPromise
と比べる譬えは半分しか真実を語っていないんですよね…
@hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post
またまた世界にモナドの解説が増えてしまいました。😅 今回はHaskellとOCamlのアプローチを比較して、型クラスがどれだけ重要な違いを齎すかに就いて書いてみました。JavaScriptのPromise
と比べる譬えは半分しか真実を語っていないんですよね…
@hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
@hongminhee@hollo.social
Just what the internet needed: another attempt to explain #monads! 🙄 But this time I'm comparing #Haskell and #OCaml approaches to show why #typeclasses make all the difference. Turns out those JavaScript Promise
analogies only tell half the story…
@hongminhee@hackers.pub
While exploring functional programming languages, I've been reflecting on how different communities approach similar concepts. One pattern that seems particularly fascinating is how Haskell and OCaml communities differ in their embrace of monads as an abstraction tool.
It's common to hear monads explained through analogies to concepts like JavaScript's Promise
or jQuery chains. While these comparisons provide an entry point, they might miss what makes monads truly beautiful and powerful in Haskell's ecosystem.
The real strength appears to lie in the Monad
typeclass itself. This elegant abstraction allows for creating generic functions and types that work with any type that shares the monad property. This seems to offer a profound unification of concepts that might initially appear unrelated:
Maybe
, []
, IO
, State
, etc.)sequence
, mapM
, and others become available across all monadic typesFor example, a simple conditional function like this works beautifully in any monadic context:
whenM :: Monad m => m Bool -> m () -> m ()
whenM condition action = do
result <- condition
if result then action else return ()
Whether dealing with potentially missing values, asynchronous operations, or state transformations, the same function can be employed without modification. There's something genuinely satisfying about this level of abstraction and reuse.
Interestingly, the OCaml community seems less enthusiastic about monads as a primary abstraction tool. This might stem from several factors related to language design:
OCaml lacks built-in typeclass support, relying instead on its module system and functors. While powerful in its own right, this approach might not make monad abstractions feel as natural or convenient:
(* OCaml monad implementation requires more boilerplate *)
module type MONAD = sig
type 'a t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
end
module OptionMonad : MONAD with type 'a t = 'a option = struct
type 'a t = 'a option
let return x = Some x
let bind m f = match m with
| None -> None
| Some x -> f x
end
OCaml also doesn't offer syntactic sugar like Haskell's do
notation, which makes monadic code in Haskell considerably more readable and expressive:
-- Haskell's elegant do notation
userInfo = do
name <- getLine
age <- readLn
return (name, age)
Compared to the more verbose OCaml equivalent:
let user_info =
get_line >>= fun name ->
read_ln >>= fun age ->
return (name, age)
The readability difference becomes even more pronounced in more complex monadic operations.
Beyond syntax, the languages differ in their fundamental approach to effects:
This allows OCaml programmers to write more direct code when appropriate:
(* Direct style in OCaml *)
let get_user_info () =
print_string "Name: ";
let name = read_line () in
print_string "Age: ";
let age = int_of_string (read_line ()) in
(name, age)
OCaml's approach might favor pragmatism and directness in many cases, with programmers often preferring:
option
and result
typesWhile this directness can be beneficial for immediate readability, it might come at the cost of some of the elegant uniformity that Haskell's monadic approach provides.
These differences highlight how programming language design shapes the idioms and patterns that emerge within their communities. Neither approach is objectively superior—they represent different philosophies about abstraction, explicitness, and the role of the type system.
Haskell's approach encourages a high level of abstraction and consistency across different computational contexts, which can feel particularly satisfying when working with complex, interconnected systems. There's something intellectually pleasing about solving a problem once and having that solution generalize across many contexts.
OCaml often favors more direct solutions that might be easier to reason about locally, though potentially at the cost of less uniformity across the codebase. This approach has its own virtues, particularly for systems where immediate comprehensibility is paramount.
After working with both paradigms, I find myself drawn to the consistent abstractions that Haskell's approach provides, while still appreciating the pragmatic clarity that OCaml can offer in certain situations. The typeclasses and syntactic support in Haskell seem to unlock a particularly elegant way of structuring code that, while perhaps requiring a steeper initial learning curve, offers a uniquely satisfying programming experience.
What patterns have you noticed in how different programming language communities approach similar problems? And have you found yourself drawn to the elegant abstractions of Haskell or the pragmatic approach of OCaml?
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 8, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/08-readings_shared_03-08-25 #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Sum types and subtypes and unions. ~ Justin Le. https://blog.jle.im/entry/sum-types-and-subtypes-and-unions.html #Haskell #FunctionalProgramming
@simonmic@fosstodon.org
hledger 1.42 is out, with new run and repl commands.
Thank you to contributors Dmitry Astapov, gesh, Thomas
Miedema, Joschua Kesper, and Lars Kellogg-Stedman !
- https://github.com/simonmichael/hledger/releases/1.42
- https://hledger.org/relnotes.html#2025-03-07-hledger-142
- https://hledger.org/install
#hledger is free, robust, friendly, multicurrency, double-entry,
#plaintextaccounting software for unix, mac, windows, and the web,
written in #haskell for reliability.
@DiazCarrete@hachyderm.io
If I'm using "async" in Haskell to spawn a thread https://hackage.haskell.org/package/async-2.2.5/docs/Control-Concurrent-Async.html#v:async and I want the thread to know about its own Async handle, which would be the best way of doing so?
It seems hat "fixIO" https://hackage.haskell.org/package/base-4.21.0.0/docs/System-IO.html#v:fixIO could do the trick, but I'm not sure if it would be a good idea 🤔
Example of where I used "fixIO" for that purpose: https://discourse.haskell.org/t/dynamic-number-of-asyncs/11574/8
@pmidden@fosstodon.org
@Profpatsch@mastodon.xyz
@Profpatsch@mastodon.xyz
@simonmic@fosstodon.org
hledger 1.42 is out, with new run and repl commands.
Thank you to contributors Dmitry Astapov, gesh, Thomas
Miedema, Joschua Kesper, and Lars Kellogg-Stedman !
- https://github.com/simonmichael/hledger/releases/1.42
- https://hledger.org/relnotes.html#2025-03-07-hledger-142
- https://hledger.org/install
#hledger is free, robust, friendly, multicurrency, double-entry,
#plaintextaccounting software for unix, mac, windows, and the web,
written in #haskell for reliability.
@haskell_discussions@mastodon.social
Aztecs v0.10: A modular game-engine and ECS for Haskell (now with a simpler design featuring applicative queries and monadic systems)
https://github.com/aztecs-hs/aztecs
Discussions: https://discu.eu/q/https://github.com/aztecs-hs/aztecs
@haskell_discussions@mastodon.social
Sum Types, Subtypes, and Unions
https://blog.jle.im/entry/sum-types-and-subtypes-and-unions.html
Discussions: https://discu.eu/q/https://blog.jle.im/entry/sum-types-and-subtypes-and-unions.html
@haskell_discussions@mastodon.social
(Haskell in Haskell) 2. Lexing
https://cronokirby.com/posts/2020/12/haskell-in-haskell-2/
Discussions: https://discu.eu/q/https://cronokirby.com/posts/2020/12/haskell-in-haskell-2/
@haskell_discussions@mastodon.social
@haskell_discussions@mastodon.social
"Learn Haskell by Example" book presentation by Philipp Hagenlocher
https://www.youtube.com/watch?v=dm84cqenhcU
Discussions: https://discu.eu/q/https://www.youtube.com/watch?v=dm84cqenhcU
@haskell_discussions@mastodon.social
Continuing introducing Я control flow primitives step by step. It's time for monoidal functors:
https://muratkasimov.art/Ya/Articles/Context-free-effects-with-Monoidal-functors
Discussions: https://discu.eu/q/https://muratkasimov.art/Ya/Articles/Context-free-effects-with-Monoidal-functors
@cdavies@mastodon.scot
I really need to master functions and functional programming generally. There's something about them that addles my brain. It's bothering me that I'm not good at them.
I can read through other people's functions and mostly work out what they do, but I struggle with writing my own.
I've read blogs that suggest learning #Haskell or #Scala as they are pure functional languages, and it helps solidify the logic.
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Writing a small practice parser for NetPBM images in Haskell
https://github.com/kostareg/netpbm
Discussions: https://discu.eu/q/https://github.com/kostareg/netpbm
@haskell_discussions@mastodon.social
Haskell recap for week 9/2025
https://discu.eu/weekly/haskell/2025/9/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell_discussions@mastodon.social
illuminant - ActivityPub server with NNTP interface
https://koldfront.dk/git/illuminant/tree/README.md
Discussions: https://discu.eu/q/https://koldfront.dk/git/illuminant/tree/README.md
@Jose_A_Alonso@mathstodon.xyz
Applying purity to the imperative world. ~ Jeremy Bowers. https://jerf.org/iri/post/2025/fp_lessons_purity/ #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared March 1, 2025. https://jaalonso.github.io/vestigium/posts/2025/03/01-readings_shared_03-01-25 #FunctionalProgramming #Haskell #ITP #LLMs #LeanProver #Math
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
Functional pearl: How much is in a square? Calculating functional programs with squares. ~ Jose Nuno Oliveira. https://www.cambridge.org/core/services/aop-cambridge-core/content/view/F48258008F47DC9F53AA2E61B4E511A7/S0956796825000012a.pdf/how_much_is_in_a_square_calculating_functional_programs_with_squares.pdf #FunctionalProgramming #Haskell
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 28, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/28-readings_shared_02-28-25 #AI #CompSci #DeepLearning #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LLMs #LeanProver #Logic #Math
@Jose_A_Alonso@mathstodon.xyz
PPA: Un asistente de demostración para lógica de primer orden con extracción de testigos usando la traducción de Friedman. ~ Manuel Panichelli. https://gestion.dc.uba.ar/media/academic/grade/thesis/tesis-1.0.1.pdf #Haskell #FunctionalProgramming #Logic
@haskell_discussions@mastodon.social
Static binary with Nix, problems with hmatrix
@haskell_discussions@mastodon.social
haskell streaming libraries
https://jmtd.net/log/haskell_streaming/
Discussions: https://discu.eu/q/https://jmtd.net/log/haskell_streaming/
@haskell_discussions@mastodon.social
Concurrent Order Book
https://github.com/bahbah94/Order-Book-Haskell
Discussions: https://discu.eu/q/https://github.com/bahbah94/Order-Book-Haskell
@haskell_discussions@mastodon.social
Dependent Haskell Roadmap
Discussions: https://discu.eu/q/https://ghc.serokell.io/dh
@haskell_discussions@mastodon.social
Step-by-Step Guide to Installing GHC-JS (Haskell JavaScript FFI)
https://www.tushar-adhatrao.in/blogs/haskell_javascript_ffi.html
Discussions: https://discu.eu/q/https://www.tushar-adhatrao.in/blogs/haskell_javascript_ffi.html
@kack@mastodon.social
Trying to figure out what to use in my next personal project. Trying to stay away from touching JS. I have been considering #Elm becuase I like #haskell. I also have been considering #clojurescript and #clojure becuase I love #lisp. I guess I could choose any backend but I am really looking for a frontend replacement to make a QOL improvement
@kosmikus@functional.cafe
Please consider nominating yourself to be a member of the #Haskell Foundation Board: https://discourse.haskell.org/t/2025-call-for-nominations-for-the-haskell-foundation/11373
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 24, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/24-readings_shared_02-24-25 #AI #CategoryTheory #Clojure #FunctionalProgramming #Haskell #ITP #LLMs #LeanProver #Lisp #Logic #Math
@haskell_discussions@mastodon.social
Haskell recap for week 8/2025
https://discu.eu/weekly/haskell/2025/8/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell@fosstodon.org · Reply to HaskellOrg's post
Update n°42 from the GHC team at IOG
https://engineering.iog.io/2025-02-20-ghc-update
Highlights:
• Sylvain worked on making GHC built with cabal-install pass the testsuite
• Luite looked into using cosmopolitan libc to see if we can make a GHC cross compiler that produces multi-arch/os binaries
@haskell@fosstodon.org · Reply to HaskellOrg's post
Update n°41 from the GHC team at IOG
https://engineering.iog.io/2025-01-30-ghc-update/
Highlights:
• Luite has completed the GHC 9.6.7 release.
• Sylvain worked on bootstrapping GHC and boot libraries with cabal-install
@Jose_A_Alonso@mathstodon.xyz
The Haskell road to logic, math and programming. ~ Kees Doets, Jan van Eijck (2004). https://fldit-www.cs.tu-dortmund.de/~peter/PS07/HR.pdf #Haskell #FunctionalProgramming #Loggic #Math
@Jose_A_Alonso@mathstodon.xyz
Bind and traverse with Kleisli morphisms. ~ Murat Kasimov. https://muratkasimov.art/Ya/Articles/Bind-and-traverse-with-Kleisli-morphisms #CategoryTheory #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Multi Line Strings are now supported in GHC 9.12.1!
https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/multiline_strings.html
Discussions: https://discu.eu/q/https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/multiline_strings.html
@abnv@fantastic.earth
In an alternative timeline where #FunctionalProgramming is the norm instead of Object-oriented programming, and #Haskell is the most popular #ProgrammingLanguage instead of #Java, there is a list of tutorials trying to explain what Objects are to programmers in terms of FP concepts, the most popular of which is, “Objects are Comonads”.
However, we don't live in that timeline, so we'll have to be content with the inverse article, “Comonads are Objects” https://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html .
@abnv@fantastic.earth
In an alternative timeline where #FunctionalProgramming is the norm instead of Object-oriented programming, and #Haskell is the most popular #ProgrammingLanguage instead of #Java, there is a list of tutorials trying to explain what Objects are to programmers in terms of FP concepts, the most popular of which is, “Objects are Comonads”.
However, we don't live in that timeline, so we'll have to be content with the inverse article, “Comonads are Objects” https://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html .
@haskell@fosstodon.org
This past week in the #Haskell Security Advisories:
*checks notes*
Nothing. Business as usual it is then.
@haskell@fosstodon.org
The GHC developers are very pleased to announce the availability of the second release candidate of GHC 9.6.7
Release notes: https://downloads.haskell.org/ghc/9.6.7-rc2/docs/users_guide/9.6.7-notes.html
Announcement: https://mail.haskell.org/pipermail/ghc-devs/2025-February/021939.html
@haskell_discussions@mastodon.social
Boost your Haskell productivity with Multiple Home Units in the repl
https://www.youtube.com/watch?v=B1WFMave-r4
Discussions: https://discu.eu/q/https://www.youtube.com/watch?v=B1WFMave-r4
@haskell_discussions@mastodon.social
First Haskell Project (an implementation of Irving's algorithm to find roomates)
https://github.com/TheArjunAgarwal/marriage-pact/tree/main
Discussions: https://discu.eu/q/https://github.com/TheArjunAgarwal/marriage-pact/tree/main
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 20, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/20-readings_shared_02-20-25 #CommonLisp #Haskell #ITP #LLMs #LeanProver #Math #Programming #Python
@haskell_discussions@mastodon.social
Я ☞ Bind and traverse with Kleisli morphisms
https://muratkasimov.art/Ya/Articles/Bind-and-traverse-with-Kleisli-morphisms
Discussions: https://discu.eu/q/https://muratkasimov.art/Ya/Articles/Bind-and-traverse-with-Kleisli-morphisms
@haskell_discussions@mastodon.social
Propositional function code from Haskell Road text
https://fldit-www.cs.tu-dortmund.de/~peter/PS07/HR.pdf
Discussions: https://discu.eu/q/https://fldit-www.cs.tu-dortmund.de/~peter/PS07/HR.pdf
@Jose_A_Alonso@mathstodon.xyz
@pmidden@fosstodon.org
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 19, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/19-readings_shared_02-19-25 #AI #CommonLisp #Coq #Haskell #ITP #LLMs #LeanProver #Logic #Math #Python #Reasoning
@haskell@fosstodon.org
"Monad of No Return: Next Steps" https://discourse.haskell.org/t/monad-of-no-return-next-steps/11443
@haskell_discussions@mastodon.social
GitHub - VitalBio/dash-haskell-flake
https://github.com/VitalBio/dash-haskell-flake
Discussions: https://discu.eu/q/https://github.com/VitalBio/dash-haskell-flake
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 18, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/18-readings_shared_02-18-25 #AI #CommonLisp #Haskell #LLMs #Math #Python
@ClemensSchmid@archaeo.social
currycarbon v0.4.0.0 is finally available. This version comes with a number of visible and invisible changes, most obviously an extension of the neat command line plot. This version is again available for MS Windows.
https://github.com/nevrome/currycarbon
#archaeology #Haskell #C14
@ClemensSchmid@archaeo.social
currycarbon v0.4.0.0 is finally available. This version comes with a number of visible and invisible changes, most obviously an extension of the neat command line plot. This version is again available for MS Windows.
https://github.com/nevrome/currycarbon
#archaeology #Haskell #C14
@haskell_discussions@mastodon.social
Announcing Symbolize 1.0.1.0: String Interning / Global Symbol Table, with Garbage Collection
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Haskell coach to stick with women's team for basketball playoffs despite having been fired
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 17, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/17-readings_shared_02-17-25 #AI #Emacs #FunctionalProgramming #Haskell #ITP #LLMs #LeanProver #Math #Programmingo #Python
@bshankar@mastodon.online · Reply to James Gayfer's post
@jgayfer It also depends on your personality.
I have seen careful and pedantic coders build impressive things with python and js while I tend to make a mess that's impossible to maintain. I also waste many hours debugging.
So for me, a strictly typed language leads to long term productivity. I also take on bigger problems with confidence.
@haskell_discussions@mastodon.social
Haskell Interlude 62: Conal Elliott
http://haskell.foundation/podcast/62/
Discussions: https://discu.eu/q/http://haskell.foundation/podcast/62/
@Jose_A_Alonso@mathstodon.xyz
Natural transformations as a basis of control. ~ Murat Kasimov. https://muratkasimov.art/Ya/Articles/Natural-transformation-as-a-basis-of-control #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 16, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/16-readings_shared_02-16-25 #CategoryTheory #FunctionalProgramming #Haskell #LLMs #LambdaCalculus #Logic #Reasoning
@Jose_A_Alonso@mathstodon.xyz
The relationship between category theory, lambda calculus, and functional programming in Haskell. ~ Antonio Montano. https://4m4.it/posts/category-theory-functional-programming-compositionality/ #Haskell #FunctionalProgramming #CategoryTheory #LambdaCalculus
@haskell_discussions@mastodon.social
PatternMatchable, Yoneda Embedding, and Adjunction - Show and Tell
https://discourse.haskell.org/t/patternmatchable-yoneda-embedding-and-adjunction/11411
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/patternmatchable-yoneda-embedding-and-adjunction/11411
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 14, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/14-readings_shared_02-14-25 #Autoformalization #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LLMs
@haskell_discussions@mastodon.social
Minimalistic niche tech job board
Discussions: https://discu.eu/q/http://beyond-tabs.com/
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
The Haskell Unfolder Episode 39: Deriving strategies). ~ Edsko de Vries, Andres Löh. https://www.youtube.com/live/NEUbp2CsuNg #Haskell #FunctionalProgramming
@pmidden@fosstodon.org
I should learn and use #rust. I could use it for work projects, and it would fit neatly, with being safe, fast, and easily installable/deployable.
But it somehow doesn't "tickle" me. I keep coming back to these (comparatively) more exotic languages like #haskell. Not sure why, but I think it offers more learning experiences, possibly more rigidity?
@haskell_discussions@mastodon.social
Deploying a Single-Binary Haskell Web App
https://entropicthoughts.com/deploying-single-binary-haskell-web-app
Discussions: https://discu.eu/q/https://entropicthoughts.com/deploying-single-binary-haskell-web-app
@haskell_discussions@mastodon.social
The Haskell Unfolder Episode 39: deriving strategies
https://www.youtube.com/watch?index=39&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=NEUbp2CsuNg
Discussions: https://discu.eu/q/https://www.youtube.com/watch?index=39&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=NEUbp2CsuNg
@robinp@mastodon.social · Reply to Abhinav 🌏's post
@abnv could do it with #Haskell, but of the libraries that sound promising
- 1 has a concise API but is experimental and misses tests
- 1 depends on an ancient base
- 1 has a too conservative licence
- 1 where you need to pass contraprovariant subfunctors and then project the result to 1.5D-space
- 1 uses a logging framework monad dep that is not compatible with your stack
- 1 is practical, but has bug that is fixed locally by users who were too busy to publish them
- 1 you need to jailbreak nix
@redmp@recurse.social
@robinp@mastodon.social · Reply to Abhinav 🌏's post
@abnv could do it with #Haskell, but of the libraries that sound promising
- 1 has a concise API but is experimental and misses tests
- 1 depends on an ancient base
- 1 has a too conservative licence
- 1 where you need to pass contraprovariant subfunctors and then project the result to 1.5D-space
- 1 uses a logging framework monad dep that is not compatible with your stack
- 1 is practical, but has bug that is fixed locally by users who were too busy to publish them
- 1 you need to jailbreak nix
@abnv@fantastic.earth
@kosmikus@functional.cafe
Tomorrow, 2025-02-11, we'll live-stream a new episode of the #Haskell #Unfolder. Edsko and I will discuss the various strategies for deriving instances that GHC offers and their relative strengths and weaknesses. Hope to see you all there! https://www.youtube.com/watch?v=NEUbp2CsuNg&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&index=39
@hackuador@functional.cafe
Talk change for #BFPG tonight. The explicit substitutions talk will be rescheduled. In its place, parser combinators in #Haskell (live-coding a JSON parser from scratch).
Be there or be a lambda cube. https://lu.ma/85i70qns
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Haskell recap for week 6/2025
https://discu.eu/weekly/haskell/2025/6/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell_discussions@mastodon.social
Я ☞ Natural transformations as a basis of control flow
https://muratkasimov.art/Ya/Articles/Natural-transformation-as-a-basis-of-control
Discussions: https://discu.eu/q/https://muratkasimov.art/Ya/Articles/Natural-transformation-as-a-basis-of-control
@Jose_A_Alonso@mathstodon.xyz
Turner, Bird, Eratosthenes: An eternal burning thread. ~ Jeremy Gibbons. https://www.cambridge.org/core/journals/journal-of-functional-programming/article/turner-bird-eratosthenes-an-eternal-burning-thread/32E2EDF5D5EAEC95F13D313BC97B86F0 #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
2025 Call for nominations for the Haskell Foundation
https://gitlab.haskell.org/hf/meta/-/blob/main/board.md#7-board-membership-lifecycle
Discussions: https://discu.eu/q/https://gitlab.haskell.org/hf/meta/-/blob/main/board.md%237-board-membership-lifecycle
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 8, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/08-readings_shared_02-08-25 #ITP #IsabelleHOL #Haskell #FunctionalProgramming
@jonn@social.doma.dev · Reply to Play Ball!!! cafechatnoir's post
@cafechatnoir "afternoon workshop type class" – accidental #haskell
@haskell_discussions@mastodon.social
Introducing Haskell Run – A VS Code Extension to Execute Haskell Instantly!
https://marketplace.visualstudio.com/items?itemName=midhunan.haskellrun
Discussions: https://discu.eu/q/https://marketplace.visualstudio.com/items?itemName=midhunan.haskellrun
@DiazCarrete@hachyderm.io
Turner, Bird, Eratosthenes: An eternal burning thread https://www.cambridge.org/core/journals/journal-of-functional-programming/article/turner-bird-eratosthenes-an-eternal-burning-thread/32E2EDF5D5EAEC95F13D313BC97B86F0
@Jose_A_Alonso@mathstodon.xyz
Review of "Haskell in depth" by Vitaly Bragilevsky. ~ Brent Yorgey. https://www.cambridge.org/core/services/aop-cambridge-core/content/view/E8BE1DB3FD80AB7AD92EE979893A10AC/S0956796825000024a.pdf/review_of_haskell_in_depth_by_vitaly_bragilevsky_manning_publications_2021.pdf #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Tricking Haskell into state: how Clash's Signal type works
https://clash-lang.org/blog/0007-signals/
Discussions: https://discu.eu/q/https://clash-lang.org/blog/0007-signals/
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 6, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/06-readings_shared_02-06-25 #ITP #LeanProver #Math #CategoryTheory #Haskell #Python #CommonLisp #Emacs #Elisp #LLMs
@DiazCarrete@hachyderm.io
@Jose_A_Alonso@mathstodon.xyz
@escape_velocity@functional.cafe
I fucking hate cabal #haskell for the inexcusable design decision that all info for a project must be in the cabal file and therefore cabal cannot figure out what modules are part of the project folder structure. Why? Because this means I can’t get extension support for files until I explicitly add the bloody module to the cabal file. When asked about it on the Haskell discord I am told that this is an unfortunate consequence of the above and that it’s on me to use some ugly workaround.
For such a fundamental pain in the UX, the only acceptable response from #cabal devs should be to stuff their pride deep deep down and go back to the fucking drawing board and throw out such hideous design decisions.
@flippac@types.pl · Reply to julesh's post
@julesh I spent a lot of time in freenode #haskell pointing out that no, haskell could go fuck itself re various limitations because the suggestions I was being given were either workaround grade (which, tbf, was usually acknowledged) or attempts to tell me I had an XY problem and Y wasn't "you're using haskell"
Some of them have, at least, improved significantly - but there's also a reason I'm deliberately keeping Nooblog and its successors small enough to piss people off, which is that I absolutely should not be maintaining a language others are building on top of! Cribbing off my design is more than fine by me.
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 4, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/04-readings_shared_02-04-25 #Haskell #Python #CommonLisp
@haskell_discussions@mastodon.social
Type-level interfaces in Haskell and Rust (talk, Functional Conf 2025)
https://youtu.be/vKAuSD0RnmY?si=JG4gHkjmgDSgdCBB
Discussions: https://discu.eu/q/https://youtu.be/vKAuSD0RnmY?si=JG4gHkjmgDSgdCBB
@redmp@recurse.social
this is the best unintentional critique of "make illegal states unrepresentable" I've seen https://lobste.rs/s/wucizv/no_panic_rust_nice_technique_for_systems#c_ysdzf9 tl;dr "shit happens"
@pandoc@fosstodon.org
Evan Silberman wrote an interesting post that describes the process which led to the contribution of the mdoc reader.
https://duckrabbit.tech/articles/mdoc.html
#pandoc #haskell #blogpost
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Posiciones de las diagonales principales. https://jaalonso.github.io/exercitium/posts/2025/02/04-posiciones_diagonales_principales/ #Haskell #Python #CommonLisp
@Jose_A_Alonso@mathstodon.xyz
Readings shared February 3, 2025. https://jaalonso.github.io/vestigium/posts/2025/02/03-readings_shared_02-03-25 #ITP #LeanProver #IsabelleHOL #Haskell #Python #CommonLisp #Maxima #Math
@abnv@fantastic.earth
Check out my series of #blog posts about writing a fast #Sudoku solver in #Haskell, starting with this post: https://abhinavsarkar.net/posts/fast-sudoku-solver-in-haskell-1/
Comments, boosts and likes appreciated.
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
my first Haskell project - a random art generator
https://github.com/jamesma100/randomart
Discussions: https://discu.eu/q/https://github.com/jamesma100/randomart
@haskell_discussions@mastodon.social
Midlands Graduate School 2025
https://www.andreipopescu.uk/MGS_Sheffield/MGS2025.html
Discussions: https://discu.eu/q/https://www.andreipopescu.uk/MGS_Sheffield/MGS2025.html
@haskell@fosstodon.org
Registrations for #ZuriHac are open!
@haskell_discussions@mastodon.social
Myth and truth in Haskell asynchronous exceptions
https://kazu-yamamoto.hatenablog.jp/entry/2024/12/04/180338
Discussions: https://discu.eu/q/https://kazu-yamamoto.hatenablog.jp/entry/2024/12/04/180338
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 31, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/31-readings_shared_01-31-25 #Haskell #Python #CommonLisp #SMT
@haskell_discussions@mastodon.social
[Well-Typed] An introduction to Cabal Hooks for package authors
https://www.well-typed.com/blog/2025/01/cabal-hooks/
Discussions: https://discu.eu/q/https://www.well-typed.com/blog/2025/01/cabal-hooks/
@haskell_discussions@mastodon.social
Add safe integral conversions to base · Issue #314 · haskell/core-libraries-committee
https://github.com/haskell/core-libraries-committee/issues/314
Discussions: https://discu.eu/q/https://github.com/haskell/core-libraries-committee/issues/314
@haskell_discussions@mastodon.social
Using the Tardis Monad in a compiler optimisation pass.
https://icicle-lang.github.io/posts/2025-02-01-a-time-travelling-optimisation.html
Discussions: https://discu.eu/q/https://icicle-lang.github.io/posts/2025-02-01-a-time-travelling-optimisation.html
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Ordenación por el máximo. https://jaalonso.github.io/exercitium/posts/2025/01/29-ordenados_por_maximo/ #Haskell #Python #CommonLisp
@haskell_discussions@mastodon.social
@lobsters@mastodon.social
Hell (Haskell shell) via @hadronized https://lobste.rs/s/f6frhd #haskell #programming
https://chrisdone.com/posts/hell-year-in-review-2025/
@haskell_discussions@mastodon.social
Blazing-Fast Directory Tree Traversal: Haskell Streamly Beats Rust
https://www.youtube.com/watch?v=voy1iT2E4bk
Discussions: https://discu.eu/q/https://www.youtube.com/watch?v=voy1iT2E4bk
@abnv@fantastic.earth
Check out my series of #blog posts about writing a fast #Sudoku solver in #Haskell, starting with this post: https://abhinavsarkar.net/posts/fast-sudoku-solver-in-haskell-1/
Comments, boosts and likes appreciated.
@haskell_discussions@mastodon.social
Haskell recap for week 4/2025
https://discu.eu/weekly/haskell/2025/4/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell_discussions@mastodon.social
Advent of Code in Haskell: Reflections and write-ups for all 25 days of 2024
https://blog.jle.im/entry/advent-of-code-2024.html
Discussions: https://discu.eu/q/https://blog.jle.im/entry/advent-of-code-2024.html
@haskell_discussions@mastodon.social
@jleigh@recurse.social
Hey all! I'm due for an (re-)introduction: I'm Jack, an engineer in the NYC area from a firmware & cybersecurity background, currently working in something like hardware-software co-design.
Technical work is often with #rust #kicad #python #verilog #c, and in all-too-rare moments stuff like #haskell #forth #agda and #prolog
I've never been much for social media, usually preferring to keep interests local: a better-detailed #introduction to follow as I figure this out 🙂
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 25, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/25-readings_shared_01-25-25 #ITP #Agda #Coq #Rocq #IsabelleHOL #Math #FunctionalProgramming #Haskell #JuliaLang
@haskell_discussions@mastodon.social
Use Monoids for Construction
https://reasonablypolymorphic.com/blog/use-monoids/index.html
Discussions: https://discu.eu/q/https://reasonablypolymorphic.com/blog/use-monoids/index.html
@Jose_A_Alonso@mathstodon.xyz
Use monoids for construction. ~ Sandy Maguire. https://reasonablypolymorphic.com/blog/use-monoids/index.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 24, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/24-readings_shared_01-24-25 #ITP #IsabelleHOL #Haskell #FunctionalProgramming #AI #LLMs #GenerativeAI #NeuroSymbolicAI
@pmidden@fosstodon.org
#haskell's "monoidmap" is fantastic! Getting a histogram from a list is just "foldMap (`MonoidMap.singleton` mempty)" (very implicit, using the "Sum" monoid)
@corpsmoderne@mamot.fr · Reply to Haskell Weekly's post
@haskell_discussions I could predict that the comments would be full of "ThIs Is NoT tHe ReAl QuIcKsOrT!!!" XD #haskell
@haskell_discussions@mastodon.social
Quicksort [Computerphile]
Discussions: https://discu.eu/q/https://youtu.be/OKc2hAmMOY4
@haskell_discussions@mastodon.social
New SHA256 bindings supporting HMAC key reuse
https://hackage.haskell.org/package/sha256
Discussions: https://discu.eu/q/https://hackage.haskell.org/package/sha256
@abuseofnotation@mathstodon.xyz
At the #agda headquaters:
"OK, guys, so our user pool consists only of folks who already know #haskell and #emacs Is there a way to narrow it down more?"
"I got it, what if we allow unicode, so they also have to also know #latex ?"
"Brilliant!"
(just kidding, agda is very cool (hope to learn it someday))
@abuseofnotation@mathstodon.xyz
At the #agda headquaters:
"OK, guys, so our user pool consists only of folks who already know #haskell and #emacs Is there a way to narrow it down more?"
"I got it, what if we allow unicode, so they also have to also know #latex ?"
"Brilliant!"
(just kidding, agda is very cool (hope to learn it someday))
@Jose_A_Alonso@mathstodon.xyz
Tracing foreign function invocations. ~ Edsko de Vries, Zubin Duggal, Matthew Pickering. https://well-typed.com/blog/2025/01/trace-foreign-calls/ #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Supercede’s house style for Haskell. ~ Jezen Thomas. https://jezenthomas.com/2025/01/style-guide/ #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Modeling dataframes in Haskell using higher-kinded types. ~ Laurent P. René de Cotret. https://laurentrdc.xyz/posts/HKTGenerics.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Making my life easier with two GADTs. ~ borar. http://systema10.org/posts/making-my-life-easier-with-two-gadts.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Making my life harder with GADTs. Matt Parsons. https://www.parsonsmatt.org/2025/01/21/making_my_life_harder_with_gadts.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Making my life easier with GADTs. ~ Lucas Escot. https://acatalepsie.fr/posts/making-my-life-easier-with-gadts.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Fast Haskell, Redux. ~ Jared Tobin. https://jtobin.io/fast-haskell-redux #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
A new perspective on lenses. ~ Sandy Maguire. https://reasonablypolymorphic.com/blog/code-lenses/ #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Hyperbole: Haskell interactive serverside web framework inspired by Htmx, Elm
https://github.com/seanhess/hyperbole
Discussions: https://discu.eu/q/https://github.com/seanhess/hyperbole
@haskell_discussions@mastodon.social
Cabal cannot build scotty project on Windows because of zlib
https://hackage.haskell.org/package/scotty
Discussions: https://discu.eu/q/https://hackage.haskell.org/package/scotty
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 22, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/22-readings_shared_01-22-25 #ITP #IsabelleHOL #Coq #Rocq #LeanProver #FunctionalProgramming #Haskell #Python #Math #AI
@haskell_discussions@mastodon.social
Haskell Interlude 61: Sam Lindley
https://haskell.foundation/podcast/61/
Discussions: https://discu.eu/q/https://haskell.foundation/podcast/61/
@haskell_discussions@mastodon.social
A Proper x86 Assembler in Haskell Using the Escardó-Oliva Functional
http://blog.vmchale.com/article/escardo-oliva-functional
Discussions: https://discu.eu/q/http://blog.vmchale.com/article/escardo-oliva-functional
@haskell_discussions@mastodon.social
Update: Jaxpr / Jax interop Haskell Library (named Neptune)
https://github.com/mzguntalan/neptune
Discussions: https://discu.eu/q/https://github.com/mzguntalan/neptune
@haskell_discussions@mastodon.social
Making my life easier with two GADTs
http://systema10.org/posts/making-my-life-easier-with-two-gadts.html
Discussions: https://discu.eu/q/http://systema10.org/posts/making-my-life-easier-with-two-gadts.html
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Advent of Code 2024: Haskell solution reflections for all 25 days. ~ Justin Le. https://blog.jle.im/entry/advent-of-code-2024.html #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
@haskell_discussions@mastodon.social
Making my life easier with GADTs
https://acatalepsie.fr/posts/making-my-life-easier-with-gadts.html
Discussions: https://discu.eu/q/https://acatalepsie.fr/posts/making-my-life-easier-with-gadts.html
@haskell_discussions@mastodon.social
GHC String Interpolation Survey Open!
https://discourse.haskell.org/t/ghc-string-interpolation-survey-open/11245
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/ghc-string-interpolation-survey-open/11245
@haskell_discussions@mastodon.social
Documentation on using Renovate with haskell-actions
https://github.com/haskell-actions/setup/issues/111
Discussions: https://discu.eu/q/https://github.com/haskell-actions/setup/issues/111
@wim_v12e@merveilles.town
Minor #Haskell #ghc annoyance of the day is this warning:
"warning: [GHC-63394] [-Wx-partial]
In the use of ‘head’
(imported from Prelude, but defined in GHC.List):
"This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
I don't want this is on by default. If I want to call `head` on a list it is my problem that this might fail.
Luckily, the fix is easy:
{-# OPTIONS_GHC -Wno-x-partial #-}
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
SupGen is program synthesizer that outperforms SOTA alternatives using the HVM (which is now in Haskell!)
https://www.youtube.com/watch?v=GddkKIhDE2c
Discussions: https://discu.eu/q/https://www.youtube.com/watch?v=GddkKIhDE2c
@haskell_discussions@mastodon.social
Haskell recap for week 3/2025
https://discu.eu/weekly/haskell/2025/3/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Primos consecutivos con media capicúa. https://jaalonso.github.io/exercitium/posts/2025/01/20-primos_consecutivos_con_media_capicua/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Interpreting Brainfuck in Haskell. ~ Abhinav Sarkar. https://abhinavsarkar.net/posts/brainfuck-interpreter/ #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Hasochism: The pleasure and pain of dependently typed Haskell programming. ~ Sam Lindley, Conor McBride. https://personal.cis.strath.ac.uk/conor.mcbride/pub/hasochism.pdf #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Hasochism: The Pleasure and Pain of Dependently Typed Haskell Programming
https://personal.cis.strath.ac.uk/conor.mcbride/pub/hasochism.pdf
Discussions: https://discu.eu/q/https://personal.cis.strath.ac.uk/conor.mcbride/pub/hasochism.pdf
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 19, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/19-readings_shared_01-19-25 #ITP #LeanProver #FunctionalProgramming #Haskell #AI #LLMs
@haskell_discussions@mastodon.social
Interpreting Brainfuck in Haskell
https://abhinavsarkar.net/posts/brainfuck-interpreter/
Discussions: https://discu.eu/q/https://abhinavsarkar.net/posts/brainfuck-interpreter/
@haskell_discussions@mastodon.social
Porting PFP from Haskell to OCaml
https://github.com/lewis-carson/PFPCaml
Discussions: https://discu.eu/q/https://github.com/lewis-carson/PFPCaml
@Jose_A_Alonso@mathstodon.xyz
A new perspective on lenses. ~ Sandy Maguire. https://reasonablypolymorphic.com/blog/code-lenses/index.html #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Haskell: A Great Procedural Language
https://entropicthoughts.com/haskell-procedural-programming
Discussions: https://discu.eu/q/https://entropicthoughts.com/haskell-procedural-programming
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 18, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/18-readings_shared_01-18-25 #Haskell #Python #CommonLisp #ITP #Coq #Rocq #Logic #Math #AI #MachineLearning #LLMs
@Jose_A_Alonso@mathstodon.xyz
@pmidden@fosstodon.org
@Jose_A_Alonso@mathstodon.xyz
Listopia: List manipulation library inspired by Haskell package Data.List. ~ Ito Dimercel. https://github.com/Dimercel/listopia #CommonLisp #Haskell
@haskell_discussions@mastodon.social
Call for Nominations: Haskell.org Committee
https://www.haskell.org/haskell-org-committee/
Discussions: https://discu.eu/q/https://www.haskell.org/haskell-org-committee/
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 17, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/17-readings_shared_01-17-25 #Haskell #Python #ITP #Coq #Rocq #LeanProver #Logic #Math #AI #LLMs #Reasoning
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Determinación de los elementos minimales. https://jaalonso.github.io/exercitium/posts/2025/01/17-elementos_minimales/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@Jose_A_Alonso@mathstodon.xyz
#MULCIA: Research software engineer at Epic. https://tinyurl.com/23jucqu4 #Job #CompSci #Haskell
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 16, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/16-readings_shared_01-16-25 #ITP #LeanProver #Agda #Logic #Math #SAT #SMT #FunctionalProgramming #Haskell #Python #Matemáticas #AI #LLMs
@haskell_discussions@mastodon.social
Fast Haskell, Redux
https://jtobin.io/fast-haskell-redux
Discussions: https://discu.eu/q/https://jtobin.io/fast-haskell-redux
@haskell_discussions@mastodon.social
Now added initial support for Haskell - auto-generate Haskell data models from Scala case classes - early preview, will extend further in hackathon
https://codeberg.org/jjba23/dmtscala
Discussions: https://discu.eu/q/https://codeberg.org/jjba23/dmtscala
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Suma de los números amigos menores que n. https://jaalonso.github.io/exercitium/posts/2025/01/16-suma_de_numeros_amigos_menores_que_n/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Sucesión de números amigos. https://jaalonso.github.io/exercitium/posts/2025/01/15-sucesion_de_numeros_amigos/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
The Haskell Unfolder Episode 38: tasting and testing CUDA (map, fold, scan). ~ Edsko de Vries, Andres Löh. https://www.youtube.com/live/ww4C3jlsesw?si=615ge7qYP7GBVp2A #Haskell #FunctionalProgramming
@LiraK@tech.lgbt
https://lira.kraamwinkel.be/articles/haskell_ffi
A while ago I wrote about the Foreign Function Interface in Haskell and how to make a desktop application with Qt6.
The following topics are covered:
foreign import
to call C or C++-functions (without name mangling);foreign export
to call Haskell-functions in C or C++GStorable
);MonadReader (IORef [a]) m
is better for storing pointers than MonadState [a] m
;ccall
and capi
I already shared it on my previous account back then, but I am posting it here now too :)
@Jose_A_Alonso@mathstodon.xyz
An agda2hs-compatible representation of exact real arithmetic. ~ Viktor Csimma. https://csimmaviktor.web.elte.hu/acorn.pdf #ITP #Agda #FunctionalProgramming #Haskell
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 15, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/15-readings_shared_01-15-25 #ITP #LeanProver #Logic #Math #CompSci #FunctionalProgramming #Haskell
@haskell_discussions@mastodon.social
The Haskell Unfolder Episode 38: tasting and testing CUDA (map, fold, scan)
https://www.youtube.com/watch?index=38&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=ww4C3jlsesw
Discussions: https://discu.eu/q/https://www.youtube.com/watch?index=38&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&v=ww4C3jlsesw
@haskell_discussions@mastodon.social
Research Software Engineer at Epic
https://discourse.haskell.org/t/research-software-engineer-at-epic/11202
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/research-software-engineer-at-epic/11202
@DiazCarrete@hachyderm.io
Hit the translate button and read about some interesting-looking #Haskell libraries.
https://zenn.dev/konn/articles/2025-01-oss-from-previous-job
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Sucesión de números amigos. https://jaalonso.github.io/exercitium/posts/2025/01/15-sucesion_de_numeros_amigos/ #Haskell #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 14, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/14-readings_shared_01-14-25 #ITP #IsabelleHOL #Coq #Rocq #Haskell #FunctionalProgramming
@LiraK@tech.lgbt
https://lira.kraamwinkel.be/articles/haskell_ffi
A while ago I wrote about the Foreign Function Interface in Haskell and how to make a desktop application with Qt6.
The following topics are covered:
foreign import
to call C or C++-functions (without name mangling);foreign export
to call Haskell-functions in C or C++GStorable
);MonadReader (IORef [a]) m
is better for storing pointers than MonadState [a] m
;ccall
and capi
I already shared it on my previous account back then, but I am posting it here now too :)
@kosmikus@functional.cafe
The #Haskell #Unfolder is back! In tomorrow's episode, we'll take a look at CUDA and write some simple functions in it. We'll also show how to interface from Haskell to CUDA and how to use QuickCheck to test CUDA functions from Haskell.
https://www.youtube.com/watch?v=ww4C3jlsesw&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&index=38
@Jose_A_Alonso@mathstodon.xyz
Hell (Haskell shell): Year in review. ~ Chris Done. https://chrisdone.com/posts/hell-year-in-review-2025/ #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
@haskell_discussions@mastodon.social
Haskell recap for week 2/2025
https://discu.eu/weekly/haskell/2025/2/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@lionhairdino@mastodon.social
하스켈 공부를 시작하고, 펑터를 슬슬 쓰기 시작하면서, Applicative 로 넘어갈 무렵에 볼만한 글입니다. 컨텍스트란 말이 편해지면, 펑터 다음 진도에 도움이 많이 됩니다.
최근 펑터를 공부하면서, 펑터가 달리 보여 5년전 글의 컨텍스트, Applicative, Traversable 내용을 보강해 봤습니다.
https://lionhairdino.github.io/posts/2020-07-02-Context.html
@Jose_A_Alonso@mathstodon.xyz
@lionhairdino@mastodon.social
예전 펑터 글에 "펑터 값을 프리미티브한 값처럼 쓰고 싶다"라는 목표를 먼저 세우고, `<$>`와 `<*>`등을 살펴보는 내용을 추가했습니다.
https://lionhairdino.github.io/posts/2023-03-09-functor.html
@DiazCarrete@hachyderm.io
Trying to learn persistent/esqueleto
https://www.yesodweb.com/book/persistent
https://hackage.haskell.org/package/persistent
persistent-postgresql https://hackage.haskell.org/package/persistent-postgresql
the Persistent entity syntax https://hackage.haskell.org/package/persistent-2.14.6.3/docs/Database-Persist-Quasi.html
esqueleto https://hackage.haskell.org/package/esqueleto
@lionhairdino@mastodon.social
예전 펑터 글에 "펑터 값을 프리미티브한 값처럼 쓰고 싶다"라는 목표를 먼저 세우고, `<$>`와 `<*>`등을 살펴보는 내용을 추가했습니다.
https://lionhairdino.github.io/posts/2023-03-09-functor.html
@Jose_A_Alonso@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Alpha beta pruning with the selection monad. ~ Johannes Hartmann, Jeremy Gibbons. https://trendsfp.github.io/abstracts/paper-028.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Shallowly embedded functions. ~ Mart Lubbers, Pieter Koopman, Niek Janssen. https://trendsfp.github.io/abstracts/paper-007.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Using GHC core to normalise student programs. ~ Matilda Blomqvist, Alex Gerdes. https://trendsfp.github.io/abstracts/paper-012.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
On the correctness of Barron and Strachey’s cartesian product function. ~ Wouter Swierstra, Jason Hemann. https://trendsfp.github.io/abstracts/paper-006.pdf #Haskell #FunctionalProgramming #ITP #Agda
@Jose_A_Alonso@mathstodon.xyz
Categories and Haskell (An introduction to the mathematics behind modern functional programming). ~ Jan-Willem Buurlage. https://raw.githubusercontent.com/jwbuurlage/category-theory-programmers/master/doc/categories_for_programmers.pdf #CategoryTheory #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 10, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/10-readings_shared_01-10-25 #ITP #LeanProver #Logic #Math #Haskell #Python #ASP #LogicProgramming #AI #NeuroSymbolicAI #LLMs
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Máxima suma de caminos en un triángulo. https://jaalonso.github.io/exercitium/posts/2025/01/10-maxima_suma_de_caminos_en_un_triangulo/ #Haskell #Python #Matemáticas
@haskell_discussions@mastodon.social
[ANN] Yolc - a Haskell-powered, safe, expressive, fun language for Ethereum
@haskell_discussions@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Case Study — Using a JavaScript component inside a Haskell application
https://blog.haskell.org/case-study-foreign-integration-js-browser/
Discussions: https://discu.eu/q/https://blog.haskell.org/case-study-foreign-integration-js-browser/
@haskell@fosstodon.org · Reply to HaskellOrg's post
Update n°40 from the GHC team at IOG
https://engineering.iog.io/2025-01-09-ghc-update/
Highlights:
• Luite finalized the patch adding compiler flags to to switch off speculative evaluation.
• Sylvain worked on bootstrapping GHC with Cabal.
@Jose_A_Alonso@mathstodon.xyz
Using a JavaScript component inside a Haskell application. ~ Mateusz Goślinowski. https://blog.haskell.org/case-study-foreign-integration-js-browser/ #Haskell #FunctionalProgramming #JavaScript
@haskell@fosstodon.org
New post on the #Haskell blog: “Case Study — Using a JavaScript component inside a Haskell application”
https://blog.haskell.org/case-study-foreign-integration-js-browser/
@jonn@social.doma.dev · Reply to Jons Mostovojs's post
@tolmasky if I had to implement reflection in Lean4 or Agda, I would try to mimic #Haskell's typeable.
But also, I think there must be a very important point here! In dependently typed languages, entities can have more than one type!
(frac 1 2) : Frac 2 4, but also (frac 1 2) : Frac 4 8, for instance.
[1] : ListLE 1, but also [1]: ListLE 42.
So, perhaps the whole idea of general reflaction is defeated by this property. And this is why #haskell offers superior reflection[1]. Note that #Typeable is in #GHC itself!
I don't know if I'm mansplaining here or if you're aware of haskell's Typeable, but here is a simple demo of its capabilities: https://github.com/cognivore/typeable-haskell-demo/blob/main/app/Main.hs
In #Lean, I would emulate it by defining asking the user to provide explict instances over an enum, just as you wrote! The existential quantification trick can be done in #Lean by carrying the instance inside a structure that ties the knot between the type and an entity which has this type:
```
structure Stuff where
α : Type
val : α
inst : Reflect α
```
You won't be able to construct it unless α is Reflect.
* * *
[1]: https://hackage.haskell.org/package/base-4.21.0.0/docs/Type-Reflection.html#t:TypeRep
@haskell_discussions@mastodon.social
GHC 9.12 & Cabal 3.14 releases
https://blog.haskell.org/ghc-9-12-cabal-3-14/
Discussions: https://discu.eu/q/https://blog.haskell.org/ghc-9-12-cabal-3-14/
@haskell_discussions@mastodon.social
Haskell recap for week 1/2025
https://discu.eu/weekly/haskell/2025/1/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 4, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/04-readings_shared_01-04-25 #ITP #IsabelleHOL #LeanProver #HOL_Light #Mizar #Math #Logic #Haskell #Python
@haskell_discussions@mastodon.social
McHale (2024) Streaming Compression via Laziness
http://vmchale.com/static/serve/lazy-c-api-streaming.pdf
Discussions: https://discu.eu/q/http://vmchale.com/static/serve/lazy-c-api-streaming.pdf
@haskell@fosstodon.org
GHC 9.12 & Cabal 3.14 released!
Read the announcement at https://blog.haskell.org/ghc-9-12-cabal-3-14/
@abnv@fantastic.earth
In my quest of solving #AdventOfCode problems in interesting ways, this time I solved the 2020 problem "Seating System" with comonads and stencils in #Haskell. Read my latest #blog post about it: https://abhinavsarkar.net/posts/solving-aoc20-seating-system/
@haskell_discussions@mastodon.social
Solving Advent of Code “Seating System” with Comonads and Stencils
https://abhinavsarkar.net/posts/solving-aoc20-seating-system/
Discussions: https://discu.eu/q/https://abhinavsarkar.net/posts/solving-aoc20-seating-system/
@haskell_discussions@mastodon.social
Policy regarding taking over Hackage packages
https://discourse.haskell.org/t/policy-regarding-taking-over-hackage-packages/
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/policy-regarding-taking-over-hackage-packages/
@abnv@fantastic.earth
In my quest of solving #AdventOfCode problems in interesting ways, this time I solved the 2020 problem "Seating System" with comonads and stencils in #Haskell. Read my latest #blog post about it: https://abhinavsarkar.net/posts/solving-aoc20-seating-system/
@abnv@fantastic.earth
In my quest of solving #AdventOfCode problems in interesting ways, this time I solved the 2020 problem "Seating System" with comonads and stencils in #Haskell. Read my latest #blog post about it: https://abhinavsarkar.net/posts/solving-aoc20-seating-system/
@lionhairdino@mastodon.social
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Caminos en un triángulo. https://jaalonso.github.io/exercitium/posts/2025/01/04-caminos_en_un_triangulo/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 3, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/03-readings_shared_01-03-25 #ITP #Lean4 #IsabelleHOL #Coq #Rocq #Math #FunctionalProgramming #OCaml #Haskell #Python #AI #MachineLearning
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Mayor órbita de la sucesión de Collatz. https://jaalonso.github.io/exercitium/posts/2025/01/03-mayor_orbita_de_la_sucesion_de_collatz/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@Jose_A_Alonso@mathstodon.xyz
Parallel SAT solver. ~ Yixuan Li, Jiaqian Li, Phoebe Wang. https://www.cs.columbia.edu/~sedwards/classes/2024/4995-fall/reports/tsp-sat-report.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Parallel QuickHull algorithm in Haskell. ~ George Morgulis, Henry Lin. https://www.cs.columbia.edu/~sedwards/classes/2024/4995-fall/reports/Convex_Hull-report.pdf #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Modular probabilistic programming with algebraic effects. ~ Oliver Goldstein, Ohad Kammar. https://arxiv.org/abs/2412.19826 #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 2, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/02-readings_shared_01-02-25 #Haskell #Python #Math
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Ternas pitagóricas con suma dada. https://jaalonso.github.io/exercitium/posts/2025/01/02-ternas_pitagoricas_con_suma_dada/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared January 1, 2025. https://jaalonso.github.io/vestigium/posts/2025/01/01-readings_shared_01-01-25 #ITP #LeanProver #Lean4 #Mizar #Math #Haskell #Python
@haskell_discussions@mastodon.social
[Design] Dataframes in Haskell
https://discourse.haskell.org/t/design-dataframes-in-haskell/11108/2
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/design-dataframes-in-haskell/11108/2
@haskell_discussions@mastodon.social
@haskell_discussions@mastodon.social
Aztecs: A type-safe and friendly ECS for Haskell
https://github.com/matthunz/aztecs
Discussions: https://discu.eu/q/https://github.com/matthunz/aztecs
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Suma de múltiplos de 3 o de 5. https://jaalonso.github.io/exercitium/posts/2022/02/09-suma_de_multiplos_de_3_o_de_5/ #Haskell #Python #matematicas
@abnv@fantastic.earth
Just in time, my #Haskell special #linkblog for December 2024: https://notes.abhinavsarkar.net/2024/links-12.
@haskell_discussions@mastodon.social
erebe/greenclip: Simple clipboard manager to be integrated with rofi
https://github.com/erebe/greenclip
Discussions: https://discu.eu/q/https://github.com/erebe/greenclip
@haskell_discussions@mastodon.social
Exported for tests only: Precise control over API visibility with custom warnings
@abnv@fantastic.earth
Just in time, my #Haskell special #linkblog for December 2024: https://notes.abhinavsarkar.net/2024/links-12.
@mangoiv@functional.cafe
#haskell hackage now has syntax highlighting 🥹
See e.g.
https://hackage.haskell.org/package/htree
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 30, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/30-readings_shared_12-30-24 #ITP #Coq #Rocq #FunctionalProgramming #Haskell #CommonLisp #EmacsLisp #Emacs #Logic #Math #CategoryTheory #AI
@haskell_discussions@mastodon.social
Haskell recap for week 52/2024
https://discu.eu/weekly/haskell/2024/52/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell_discussions@mastodon.social
Overloading the lambda abstraction in Haskell
https://acatalepsie.fr/posts/overloading-lambda
Discussions: https://discu.eu/q/https://acatalepsie.fr/posts/overloading-lambda
@haskell_discussions@mastodon.social
Overloading the lambda abstraction in Haskell
https://acatalepsie.fr/posts/overloading-lambda
Discussions: https://discu.eu/q/https://acatalepsie.fr/posts/overloading-lambda
@Jose_A_Alonso@mathstodon.xyz
Generalized Dijkstra in Haskell. ~ Lucas Escot. https://acatalepsie.fr/posts/haskell-dijkstra.html #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Category Theory Illustrated
https://abuseofnotation.github.io/category-theory-illustrated/
Discussions: https://discu.eu/q/https://abuseofnotation.github.io/category-theory-illustrated/
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Exponente en la factorización. https://jaalonso.github.io/exercitium/posts//2022/02/08-exponente_en_la_factorizacion/ #Haskell #Python #Matemáticas
@haskell_discussions@mastodon.social
Excellent Haskell course!
https://www.youtube.com/@haskellhutt
Discussions: https://discu.eu/q/https://www.youtube.com/%40haskellhutt
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 26, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/26-readings_shared_12-26-24 #Haskell #Python #Math
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Reconocimiento de potencias de 4. https://jaalonso.github.io/exercitium/posts/2022/02/04-reconocimiento_de_potencias_de_4/ #Haskell #Python
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 25, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/25-readings_shared_12-25-24 #Haskell #Python #Math #ITP #LeanProver #Lean4 #Lisp #Programming
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 24, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/24-readings_shared_12-24-24 #ITP #Agda #Haskell #FunctionalProgramming #Haskell #Python #AI #LLMs #Math
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: El teorema de Navidad de Fermat. https://www.glc.us.es/~jalonso/exercitium/14-dic-23/ #Haskell #Python #Math
@lionhairdino@mastodon.social
@haskell_discussions@mastodon.social
Show HN: I Ported GHC Haskell Compiler to Windows 11 ARM. MC Gift
https://gitlab.haskell.org/ghc/ghc/-/issues/24603#note_601980
Discussions: https://discu.eu/q/https://gitlab.haskell.org/ghc/ghc/-/issues/24603%23note_601980
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Producto de los elementos de la diagonal principal. https://jaalonso.github.io/exercitium/posts/2022/02/03-producto_de_los_elementos_de_la_diagonal_principal/ #Haskell #Python #DíaInternacionalDeLasMatemáticas
@Jose_A_Alonso@mathstodon.xyz
Compiling dependent type preconditions to runtime checks with Agda2Hs. ~ Jakob Naucke. https://repository.tudelft.nl/file/File_b39e0ab0-422a-48db-8ce4-cef2e783c3cc #ITP #Agda #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
How to collect performance statistics with Cabal
https://blog.haskell.org/how-to-collect-performance-statistics-with-cabal/
Discussions: https://discu.eu/q/https://blog.haskell.org/how-to-collect-performance-statistics-with-cabal/
@haskell_discussions@mastodon.social
Haskell recap for week 51/2024
https://discu.eu/weekly/haskell/2024/51/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@haskell@fosstodon.org
The Cabal Manual now has a guide on how to collect performance statistics of Haskell applications. Read more at
https://blog.haskell.org/how-to-collect-performance-statistics-with-cabal/
@haskell@fosstodon.org
#Haskell Interlude's guest Tom Ellis works at Groq, using Haskell to compile AI models to specialized hardware. Listen to this episode about stability of both GHC and Haskell libraries, effects, and strictness.
@haskell@fosstodon.org · Reply to HaskellOrg's post
Update n°39 from the GHC team at IOG
https://engineering.iog.io/2024-12-19-ghc-update/
Highlights:
• Sylvain kept working on building GHC with cabal-install instead of Hadrian
• Jeff: created a GHC JS Backend matrix room
• Luite Is back from vacation and has been preparing the GHC 9.6.7 release. Welcome back Luite!
@haskell@fosstodon.org
Update n°38 from the GHC team at IOG
https://engineering.iog.io/2024-11-28-ghc-update/
Highlights:
• Sylvain explored how to build GHC with cabal instead of hadrian
• Jeff investigated variations in the Plutus benchmark suite, possibly related to garbage collection
• Luite worked on preparing the upcoming GHC 9.6.7
@haskell_discussions@mastodon.social
Haskell Interlude 60: Tom Ellis
https://haskell.foundation/podcast/60/
Discussions: https://discu.eu/q/https://haskell.foundation/podcast/60/
@haskell_discussions@mastodon.social
Generalized Dijkstra in Haskell
https://acatalepsie.fr/posts/haskell-dijkstra.html
Discussions: https://discu.eu/q/https://acatalepsie.fr/posts/haskell-dijkstra.html
@haskell_discussions@mastodon.social
Aztecs: A type-safe and friendly ECS for Haskell
https://github.com/matthunz/aztecs
Discussions: https://discu.eu/q/https://github.com/matthunz/aztecs
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 21, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/21-readings_shared_12-21-24 #ITP #IsabelleHOL #Math #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
Solving perfect numbers quickly with Haskell. ~ Andrew MacGillivray. https://gist.github.com/amacgillivray/c37a2a860df5117561ec64604bcb6b7d #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
An imperative programmer tries to learn Haskell. ~ Thane Thomson. https://hatwd.com/p/an-imperative-programmer-tries-to #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
Project: M36 (Relational Algebra Engine)
https://github.com/agentm/project-m36
Discussions: https://discu.eu/q/https://github.com/agentm/project-m36
@Jose_A_Alonso@mathstodon.xyz
#Exercitium: Reiteración de suma de consecutivos. https://jaalonso.github.io/exercitium/posts/2022/02/02-reiteracion_de_suma_de_consecutivos/ #Haskell #Python #Matemáticas
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 19, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/19-readings_shared_12-19-24 #ITP #IsabelleHOL #Mizar #Logic #Math #Haskell #FunctionalProgramming #LLMs
@haskell_discussions@mastodon.social
@shapr@recurse.social
Is there an active content management system written in #haskell ?
@haskell_discussions@mastodon.social
Remote Haskell position (but must be in EU/EES) at Scrive
https://careers.scrive.com/jobs/5365423-haskell-developer
Discussions: https://discu.eu/q/https://careers.scrive.com/jobs/5365423-haskell-developer
@6d03@mathstodon.xyz
@Jose_A_Alonso@mathstodon.xyz
Linear calculi: A comparison approach. ~ Ana Jorge Carvalho de Soares Almeida. https://repositorio-aberto.up.pt/bitstream/10216/164137/2/700562.pdf #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Lift instance cause Cabal build error: unknown symbol with CFFI but Cabal repl works fine.
https://github.com/yourcomrade/FloPoCoFloat/tree/Error_branch
Discussions: https://discu.eu/q/https://github.com/yourcomrade/FloPoCoFloat/tree/Error_branch
@haskell_discussions@mastodon.social
Introducing bevy-remote-hs: a Haskell library for interfacing with the Bevy game engine
https://github.com/matthunz/bevy-remote-hs
Discussions: https://discu.eu/q/https://github.com/matthunz/bevy-remote-hs
@haskell_discussions@mastodon.social
An imperative programmer tries to learn Haskell
https://hatwd.com/p/an-imperative-programmer-tries-to
Discussions: https://discu.eu/q/https://hatwd.com/p/an-imperative-programmer-tries-to
@haskell_discussions@mastodon.social
Announcing Decision Drill
https://entropicthoughts.com/announcing-decision-drill
Discussions: https://discu.eu/q/https://entropicthoughts.com/announcing-decision-drill
@haskell_discussions@mastodon.social
Effectful - Build Fast & Reliable Haskell Applications
https://haskell-effectful.github.io/
Discussions: https://discu.eu/q/https://haskell-effectful.github.io/
@haskell_discussions@mastodon.social
The Effectful effect system has a website: haskell-effectful.github.io
@vascorsd@mastodon.social
Glasgow #Haskell Compiler 9.12.1 Release notes | Lobsters
https://lobste.rs/s/pyjhml/glasgow_haskell_compiler_9_12_1_release
@haskell_discussions@mastodon.social
Proposal: improve the time performance of `Data.List.unsnoc`
https://github.com/haskell/core-libraries-committee/issues/307
Discussions: https://discu.eu/q/https://github.com/haskell/core-libraries-committee/issues/307
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 16, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/16-readings_shared_12-16-24 #ITP #LeanLang #Lean4 #Logic #SMT #Z3 # #Haskell #FunctionalProgramming #CommonLisp #Programming #AI #Math
@haskell_discussions@mastodon.social
GHC 9.12.1 is now available - Announcements
https://discourse.haskell.org/t/ghc-9-12-1-is-now-available
Discussions: https://discu.eu/q/https://discourse.haskell.org/t/ghc-9-12-1-is-now-available
@Jose_A_Alonso@mathstodon.xyz
Bottom-up computation using trees of sublists. ~ Shin-Cheng Mu. https://www.cambridge.org/core/journals/journal-of-functional-programming/article/bottomup-computation-using-trees-of-sublists/5FC308F9732880B018C841EA424B09FA #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Contributing an mdoc reader to Pandoc
https://duckrabbit.tech/articles/mdoc.html
Discussions: https://discu.eu/q/https://duckrabbit.tech/articles/mdoc.html
@haskell_discussions@mastodon.social
Glasgow Haskell Compiler 9.12.1 Release notes
https://downloads.haskell.org/ghc/9.12.1/docs/users_guide/9.12.1-notes.html
Discussions: https://discu.eu/q/https://downloads.haskell.org/ghc/9.12.1/docs/users_guide/9.12.1-notes.html
@haskell_discussions@mastodon.social
Haskell recap for week 50/2024
https://discu.eu/weekly/haskell/2024/50/
Get RSS feeds and support this bot with the premium plan: https://discu.eu/premium
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 15, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/13-readings_shared_12-13-24 #Haskell #FunctionalProgramming #CategoryTheory #AI #ITP #LeanProver #Math
@haskell_discussions@mastodon.social
Proposal: add `withForeignPtrST` and `touchForeignPtrST`
https://github.com/haskell/core-libraries-committee/issues/294
Discussions: https://discu.eu/q/https://github.com/haskell/core-libraries-committee/issues/294
@Jose_A_Alonso@mathstodon.xyz
Category theory using Haskell (An introduction with Moggi and Yoneda). ~ Shuichi Yukita. https://link.springer.com/book/10.1007/978-3-031-68538-5 #Haskell #FunctionalProgramming #CategoryTheory
@haskell_discussions@mastodon.social
Repost: 2-3 Weeks Haskell Onboarding From Zero (Google, FPComplete)
https://news.ycombinator.com/item?id=23621930
Discussions: https://discu.eu/q/https://news.ycombinator.com/item?id=23621930
@haskell_discussions@mastodon.social
Google Summer of Code 2024 Wrap-up
https://blog.haskell.org/gsoc-2024/
Discussions: https://discu.eu/q/https://blog.haskell.org/gsoc-2024/
@haskell_discussions@mastodon.social
@pmidden@fosstodon.org
#AdventOfCode in #Haskell day 13, supplemental: realized that I don't need a decimal library, just Data.Ratio(Rational). Nice.
@haskell_discussions@mastodon.social
Proposal: add enumerate :: (Enum a, Bounded a) => [a]
https://github.com/haskell/core-libraries-committee/issues/306
Discussions: https://discu.eu/q/https://github.com/haskell/core-libraries-committee/issues/306
@kosmikus@functional.cafe
I wonder if today's (14) #AdventOfCode task was specifically designed to be difficult for AI to solve due to vague specification, or if that's actually a problem that AI is particularly good at.
I was first slightly annoyed at having to guess, but then I got it with my first solution attempt (in #haskell), so I'm happy enough.
@haskell_discussions@mastodon.social
[Well-Typed] GHC activities report: September-November 2024
https://www.well-typed.com/blog/2024/12/ghc-activities-report-september-november-2024/
Discussions: https://discu.eu/q/https://www.well-typed.com/blog/2024/12/ghc-activities-report-september-november-2024/
@pmidden@fosstodon.org
#AdventOfCode in #haskell, day 13. First part was pretty easy. Second part would have been easy if sbv wasn't broken in #nixpkgs. I didn't want to just increase the precision.
@Jose_A_Alonso@mathstodon.xyz
Readings shared December 11, 2024. https://jaalonso.github.io/vestigium/posts/2024/12/11-readings_shared_12-11-24 #ITP #IsabelleHOL #Logic #Math #SetTheory #Haskell #FunctionalProgramming
@haskell_discussions@mastodon.social
Solving a ResourceT-related space leak in production
https://exploring-better-ways.bellroy.com/solving-a-resourcet-related-space-leak-in-production.html
@j3rn@fosstodon.org
#Haskell question: Is there a function for "reapply this function to a starting value N times"? e.g. `doTimes (*2) 3 1` would return `8` ((*2) $ (*2) $ (*2) $ 1). I know I could chain take and iterate and then do a Data.List.last, but that has crumby performance for very large values of N.
@haskell_discussions@mastodon.social
Internship opportunity with NASA programming in Rust
https://stemgateway.nasa.gov/s/course-offering/a0BSJ000000KS9p2AG/flight-software-in-rust
Discussions: https://discu.eu/q/https://stemgateway.nasa.gov/s/course-offering/a0BSJ000000KS9p2AG/flight-software-in-rust
@haskell_discussions@mastodon.social
Haskell Interlude 59: Harry Goldstein
https://haskell.foundation/podcast/59/
Discussions: https://discu.eu/q/https://haskell.foundation/podcast/59/
@gangineering@mas.to
#haskell people
I hope you're doing fine !
I got this every time I compile, I'm tired of it. Any idea why ?
@Jose_A_Alonso@mathstodon.xyz
When is a call stack not a call stack? ~ Chris Smith. https://cdsmithus.medium.com/when-is-a-call-stack-not-a-call-stack-f7f12d7aabbe #Haskell #FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz
@haskell_discussions@mastodon.social
When is a call stack not a call stack?
https://cdsmithus.medium.com/when-is-a-call-stack-not-a-call-stack-f7f12d7aabbe
Discussions: https://discu.eu/q/https://cdsmithus.medium.com/when-is-a-call-stack-not-a-call-stack-f7f12d7aabbe
@haskell_discussions@mastodon.social
Parser Combinators Beat Regexes
https://entropicthoughts.com/parser-combinators-beat-regexes
Discussions: https://discu.eu/q/https://entropicthoughts.com/parser-combinators-beat-regexes
@pmidden@fosstodon.org
#AdventOfCode in #Haskell, day 10 was a breeze and also quite fun. Still didn't use comonads because of time constraints. 😐
@haskell_discussions@mastodon.social
The Haskell Programmer's Guide to the IO Monad
https://stefan-klinger.de/files/monadGuide.pdf
Discussions: https://discu.eu/q/https://stefan-klinger.de/files/monadGuide.pdf
@zurihac@fosstodon.org
🙋 Hello Haskell community!
Are you dreaming of hacking away during sunny days at the foot of the Alps together with hundreds of other Haskellers?
We are busy making this dream a reality for you!
From this account, we will be posting upcoming information about next year's edition of ZuriHac.
So stay tuned and spread the word!
#ZuriHac #ZuriHac2024 #ZuriHac2025 #Haskell #functionalprogramming
@6d03@mathstodon.xyz
Anyone looking for a #Haskell Job, #Berlin or remote in EU/EEA?
~I will update this post when I have more details.~
Here is the job posting: https://careers.scrive.com/jobs/5365423-haskell-developer
We are also looking for an #elm engineer.
@haskell_discussions@mastodon.social
3D Printed Programming Language Logo Tree Ornaments: Designed in Haskell
https://github.com/joe-warren/christmas-ornaments
Discussions: https://discu.eu/q/https://github.com/joe-warren/christmas-ornaments
@haskell_discussions@mastodon.social
Haskell: A Great Procedural Language
https://entropicthoughts.com/haskell-procedural-programming
Discussions: https://discu.eu/q/https://entropicthoughts.com/haskell-procedural-programming
@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post
@haskell_discussions@mastodon.social
Hydra, a code counting program written in Haskell.
Discussions: https://discu.eu/q/https://github.com/haq0/hydra
@lionhairdino@mastodon.social
@jonn@social.doma.dev
Just as I had to got rid of #haskell tag (in favour of #lean), sadly, I feel like it's time to get rid of #elixir tag in my bio.
I'm doing a #rust rewrite of #ZeroHR backend now and while I'm not ruminating too much over the time and money spent on #elixir backend, I find it so much cheaper and faster to write in well-typed languages.
I really hope to become profitable so that I can have a look at #PureNix + #PureErl + #PureScript combo, but I think I'm years away from such a luxury.
@haskman@functional.cafe
I have a #Linux machine with 32GB RAM and barely use 8GB of it. I run #Firefox with hundreds of tabs, open #Haskell, #Rust, and #PureScript projects all at the same time. Have #Telegram and #Discord apps running, and the memory usage still hovers around 8GB.Seems like I should be using Docker and Kubernetes just to feel like I'm using my machine to its potential 😆
@BoydStephenSmithJr@hachyderm.io
Would it be insane to create a git repository that has #Haskell, #Purescript, AND #Idris packages in it?
My main concern is that some of the package distribution tooling I've dealt with seems to assume/prefer the package is at the top-level of the git repo.
Should I be using *submodules*!? (Plz, no!)
I think it's going to be informative to keep the packages coherent, and one repo seems like it could be a way to do that.
@kakkun61@pawoo.net
@haskell_discussions@mastodon.social
Deploying a Single-Binary Haskell Web App
https://entropicthoughts.com/deploying-single-binary-haskell-web-app
Discussions: https://discu.eu/q/https://entropicthoughts.com/deploying-single-binary-haskell-web-app
@justsoup@mstdn.social
Since I am the newest Trusted Contributor with #postmarketOS I thought I would give a little introductory post.
Heyo! My name is Aster (they/them) and I do stuff with #Linux! I am hard at work getting immutability up and running on pmOS with the help of the amazing work being done to port #systemd.
You may know me for my work on #Lomiri on pmOS, my favorite #MobileLinux desktop environment!
I also dabble in #Rustlang and a bit of #Haskell.
Excited to work with all of y'all!
@jesper@agda.club
For Haskell packages published on Hackage, do you prefer version bounds on dependencies to be narrower or wider?
narrow ~ “We have tested that the package builds with dependencies that fall in this range”
wide ~ “Things are very likely to break if you use a version outside of this range, but we haven’t necessarily tested every version in it”
Case in point, I’m considering for agda2hs
whether to bump the bound on base
to only include the versions we actually test on CI, or to also include older versions that might still work but aren’t currently tested.
@haskell_discussions@mastodon.social
@haskman@functional.cafe
There is a fundamental difference between #complexity for the sake of convenience (I can build an entire app quickly. Think #JavaScript framework of the day), vs complexity for the sake of robustness (I can make changes to the app quickly without introducing new bugs. Think #Rust or #Haskell).
When you are not familiar with the tech, both can look the same, but they are not. The latter is actually #simplicity in disguise
@pmidden@fosstodon.org
In #haskell, is there a way to have doctests that just compile and not run? I have some IO code that I cannot execute in an isolated fashion.
@MrBerard@pilote.me
Mastodon's global search only works on hashed tags, not text, so:
#ComputerScience
#SoftwareEngineering
#Education
#UK Teacher
#Python
#Haskell
#InfoSec
#Processing
#AI
#Computing
#ComputingEducation
#SoundEngineering
#MusicProduction
#Music
#Comedy
#Standup
#French
#London
@RanaldClouston@fediscience.org
I've been on Mastodon for a year, so it's time for a new pinned #introduction post with an updated dog pic! I'm a lecturer in #computerScience at Australian National University #ANU in #Canberra , #Ngunnawal / #Ngambri country. I research #typeTheory , #logic , #proofTheory and a little #categoryTheory , and teach an intro to programming class in #Haskell . Sometimes I post about work; when I'm busy at work I'm more likely to post about #books , my #labradoodle , and other pleasant distractions
@tymwol@hachyderm.io
#c - what if everything was a pointer
#lisp - what if everything was a linked list
#haskell - what if everything was a pure function
#forth - what if everything was a stack
#lua - what if everything was a hash map
#erlang - what if everything was immutable
#prolog - what if everything was a pattern to match
#java - what if everything was a class
#rust - what if everything was a memory allocation problem
#golang - what if everything != nil
#javascript - what if everything was everything
@DiazCarrete@hachyderm.io
--enable-multi-repl has arrived to cabal-install! 🎉
It still has some limitations, but it should work for speeding up ghcid-based development, and hopefully making HLS more reliable.
https://discourse.haskell.org/t/cabal-install-3-12-1-0-and-accompanying-libraries-released/9830
https://github.com/haskell/cabal/blob/e7657ad319b9a5b50718262488d17aad915aad90/doc/internal/multi-repl.md?plain=1#L194
@abnv@fantastic.earth
JSON is probably the most used standard file format for storing and transmitting data on the Internet in recent times. It has a simple syntax with only four scalar data types and two composite data types. So, writing a parser for #JSON is a great exercise for learning the basics of parsing.
That's exactly what I did: I wrote a JSON #parser from scratch in #Haskell. Read my #blog post to learn about basics of parsing, nuances of the JSON syntax, and parser combinators and property-based #testing in Haskell: https://abhinavsarkar.net/posts/json-parsing-from-scratch-in-haskell/
@DiazCarrete@hachyderm.io
https://hackage.haskell.org/package/network-uri-2.6.4.2/docs/Network-URI.html#g:2
https://www.ietf.org/rfc/rfc2396.txt
https://webmasters.stackexchange.com/a/56844/89929
"A relative reference that begins with a single slash character is termed an absolute-path reference. A relative reference that does not begin with a slash character is termed a relative-path reference."
@haskell_discussions@mastodon.social
Why is Prettier rock solid? Haskell!
Discussions: https://discu.eu/q/https://mrmr.io/til/prettier
@cxandru@types.pl
Painted a mug with my preferred tech stack: #emacs #agda #haskell #nix #nixos
(Also featured: the Σ ⊣ Δ ⊣ Π adjunction sequence from the categorical semantics of (dependent) type theory)
#categorytheory #typetheory
@hungryjoe@functional.cafe
If anyone's interested in the combination of #Haskell & #CAD / #3DPrinting I've been working on a library for declarative solid modeling
https://hackage.haskell.org/package/waterfall-cad-0.0.0.1
https://github.com/joe-warren/opencascade-hs
@nicuveo@tech.lgbt
I've been meaning to write this down for a long while, but i've made it a youtube essay instead, as an experiment, to learn something new; so: what the hell is the problem with monads?
https://youtube.com/watch?v=LekhueQ4zVU #monads #haskell
@xameer@mathstodon.xyz
In a lazy evaluation scheme, the evaluation of an expression is deferred until the
value of the expression is actually needed elsewhere in the computation. That
is, the expression is evaluated on demand. This contrasts with what is called
eager evaluation in which an expression is evaluated as soon as its inputs are
available.
For example, if eager evaluation is used, an argument (which may be an arbi-
trary expression) of a function call is evaluated before the body of the function.
If lazy evaluation is used, the argument is not evaluated until the value is actu-
ally needed during the evaluation of the function body. If an argument’s value
is never needed, then the argument is expression is never evaluated.
Why should we care? Well, this facility allows programmers to construct and
use data structures that are conceptually unbounded or infinite in size. As
long as a program never actually needs to inspect the entire structure, then a
terminating computation is still possible.
For example, we might define the list of natural numbers as a list beginning
with 0, followed by the list formed by adding one to each element of the list of
natural numbers.
Lazy evaluation thus allows programmers to separate the data from the control.
They can define a data structure without having to worry about how it is
processed and they can define functions that manipulate the data structure
without having to worry about its size or how it is created. This ability to
separate the data from the control of processing enables programs to be highly
modular
#haskell
https://john.cs.olemiss.edu/~hcc/csci450/notes/haskell_notes.pdf
@haskell_discussions@mastodon.social
Anti-Instances in Haskell
https://www.heneli.dev/blog/anti-instances
Discussions: https://discu.eu/q/https://www.heneli.dev/blog/anti-instances
@haskell_discussions@mastodon.social
Difference between type variables, unification variables and skolems
https://cohost.org/prophet/post/2220730-if-there-is-one-piec
Discussions: https://discu.eu/q/https://cohost.org/prophet/post/2220730-if-there-is-one-piec
@tuturto@mastodon.art
time for an #introduction
I'm Tuula Aurora, a trans woman living in Finland and trying to figure out the world.
I tend to switch from hobby to hobby when it strikes my fancy.
I like coding and switch from language to language (#python, #hy, #haskell). Sometimes I try to wrap my head around #coq or #rust.
I also like #drawing and doodle silly things on the margins now and then.
Also, tell me about your cool project. I love hearing what people are creating.
@abnv@fantastic.earth
I ported @mattmight’s #CPS conversion code (https://matt.might.net/articles/cps-conversion/) to #Haskell and after some fighting with the type system, it worked! To make the #interpreters work with the Cont monad, I had to remove recursive lets and hence, functions being able to call themselves recursively, but the rest works fine.
The attached images show the conversion of the Fibonacci function into the CPS version.
@abnv@fantastic.earth
I wrote the fourth part of my #blog series “Implementing Co, a small programming language with #coroutines”. And this time, we add support for channels in #Co for inter-coroutine communication. https://abhinavsarkar.net/posts/implementing-co-4/
#Programming #PLT #ProgrammingLanguages #Compilers #Haskell #concurrency
@redmp@recurse.social
@Jose_A_Alonso@mathstodon.xyz
falsify: Hypothesis-inspired shrinking for Haskell. ~ Edsko de Vries. https://well-typed.com/blog/2023/04/falsify/ #Haskell #FunctionalProgramming
@xameer@mathstodon.xyz
A category with a terminal object, products and exponentials
is called a Cartesian Closed Category (CCC). N
For example, Set is a CCC. Another class of examples are Boolean algebras,
seen as categories:
• Products are given by conjunctions A ∧ B. We define exponentials as im-
plications:
A ⇒ B := ¬A ∨ B .
• Evaluation is just Modus Ponens,
(A ⇒ B) ∧ A ≤ B
while couniversality is the Deduction Theorem,
C ∧ A ≤ B ⇐⇒ C ≤ A ⇒ B
#haskell
@xameer@mathstodon.xyz
Abstract:
later
Author :
Me
Assumption :
1. there are no onions , such that number of layers of an onion are 0 .
Law : You have no way to record all you knife ops .
2. Given theory T , for \[x \in T \], x need not be either true or false
if onions here are a functor they are also free monad
\[Op\]- now you peel of a layer from one
\[Op^{-1}\]you can wrap it back too
when you do that , you have a monoid.
How do you write a computable abstract syntax tree (AS A monad computation) for these ops
REFERENCES - LATER
To be contd
#HASKELL
@xameer@mathstodon.xyz
So one way to define #continuousintegration is to write recursive function that defines its inputs in terms of the outputs, which the function gives using initial inputs and so on.
So domain corresponds to rand and vice versa and this describes continuity of the function?
Can we define the continuity in #math like this
Why types should I use if i write it in #haskell
Aha others are thinking about it too
Albeit, i don't think I can treat arrows like applicatives in my approach
Quote
fetching gives you a source promise and you want an image promise
writing pipelines using arrow notation is difficult because we have to program in a point-free style (without variables).
ci- is cool
https://codeberg.org/Codeberg-CI/request-access
https://roscidus.com/blog/blog/2019/11/14/cicd-pipelines/
via @talex5
@lispwitch@octodon.social
#anarchism #ancientgreek #anthropology #baduk #bicycling #boardgames #calligraphy #chess #classicalantiquity #classics #climatechange #commonlisp #communism #compilers #cooperatives #culture #deutsch #digitalhumanities #dsa #emacs #español #esperanto #fiction #fancyrats #freeculture #freesoftware #fsf #gamedev #godot #gnu #guile #guix #hcoop #haskell #history #hypertext #internationalsolidarity #javascript #koinegreek #latin #lgbt #linguistics #lisp #lispgames #lispm #logic #math #northcarolina #octodon #philosophy #plt #posca #programming #poetry #queer #rats #scheme #sciencefiction #smalltalk #sml #snowdriftcoop #socialism #tea #trans #typography #unions #vegetarian #weiqi #wikis #www #xanadu #xmpp #yerbamate #yow #zen
@haskell_discussions@mastodon.social
@haskell_discussions@mastodon.social
Overloading the lambda abstraction in Haskell
https://acatalepsie.fr/posts/overloading-lambda
Discussions: https://discu.eu/q/https://acatalepsie.fr/posts/overloading-lambda
@haskell_discussions@mastodon.social
Haskell, Ada, C++, Awk: An Experiment in Prototyping Productivity (1994) [pdf]
https://www.cs.yale.edu/publications/techreports/tr1049.pdf
Discussions: https://discu.eu/q/https://www.cs.yale.edu/publications/techreports/tr1049.pdf
@dino@masto.ai
@rossng@indieweb.social
Hello! I guess I'm here now. 👋
You might find me talking about some of these nerdy topics: #programming #types #fp #functionalprogramming #typescript #rust #haskell
And these slightly different nerdy topics: #urbanism #bikes #architecture
@mdreid@mastodon.social
I got a suggestion to use hashtags to help kickstart my network here. So here's a hashtag-dense list of my interests:
I'm a data-focused #machinelearning engineer at #Apple, working with #PyTorch, #Spark, and #Python which I write with a #Haskell accent. I used to work in #LearningTheory.
I enjoy long distance #running and #trailrunning and am training for my first #ultramarathon.
In my spare time I make electronic #ModularSynth/#Eurorack music and am learning #JazzPiano and the #GameOfGo.
@das_g@chaos.social
Hallo Fediversum!
Obwohl ich bereits einen Account auf @das_g@en.osm.town hatte, bin ich #neuhier. 👋
#Vorstellung: Als #WiMa an einer 🎓Fachhochschule 👨🏫betreue ich Übungen & 👩🔧Praktika, 👨💻entwickle #Software und 👨🔬betreibe angewandte "#Forschung". In meiner Freizeit trage ich zu 🗺️#OpenStreetMap bei und lerne & spreche 💚#Esperanto. Ich interessiere mich für #funktionale_Programmierung & #funktionale_Programmiersprache|n wie #Haskell und für das Beibringen des #Programmieren|s.
@das_g@chaos.social
Saluton Fediverso!
Kvankam mi antaŭe havis konton ĉe @das_g@en.osm.town, mi estas 👋#nova_ĉi_tie.
#Sinprezento: Mi laboras kiel 👨🏫 #instruisthelpanto & 👨💻 #programisto/👨🔬"#esploristo" ĉe 🎓fakaltlernejo. Libertempe mi kontribuas al 🗺️ #OpenStreetMap kaj (evidente) mi estas 💚#Esperantisto. Mi interesiĝas interalie pri #funkciaj_programlingvoj kiel #Haskell kaj pri #instruado de #programado.
@league@scholar.social
Reactivating — Hello! I’m into:
• Functional programming, especially #haskell, #ocaml, #elmlang, #purescript
• Proof systems & software correctness tools #coq, #idris, #agda, #rustlang
• Scientific data acquisition & analysis, #gpu frameworks
• Reproducible builds, #nixos, #nixpkgs
• Non-traditional families (#queer, interracial)
• #ADHD strategies & other #neurodivergent perspectives
• Black natural hair care, for Ms. 7yo
• #Classical & electronic music, dabbling at piano as a busy adult