mindly.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mindly.Social is an English speaking, friendly Mastodon instance created for people who want to use their brains and their hearts to make social networking more social. 🧠💖

Administered by:

Server stats:

1.3K
active users

#haskell

39 posts22 participants0 posts today
Woke Leftist Trash<p>I think I'll be working on tigerbeetle-hs tonight at 8:10pm EST at <a href="https://twitch.tv/agentultra" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">twitch.tv/agentultra</span><span class="invisible"></span></a></p><p><a href="https://types.pl/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a></p>
José A. Alonso<p>Faking ADTs and GADTs in languages that shouldn't have them. ~ Justin Lê. <a href="https://blog.jle.im/entry/faking-adts-and-gadts.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.jle.im/entry/faking-adts-</span><span class="invisible">and-gadts.html</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a></p>
José A. Alonso<p>Unfolding trees breadth-first in Haskell. ~ Li-yao Xia. <a href="https://blog.poisson.chat/posts/2025-03-30-breadth-first-unfolds.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.poisson.chat/posts/2025-0</span><span class="invisible">3-30-breadth-first-unfolds.html</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a></p>
José A. Alonso<p>Readings shared April 1, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/04/01-readings_shared_04-01-25" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/04/01-readings_shared_04-01-25</span></a> <a href="https://mathstodon.xyz/tags/AI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>AI</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/IsabelleHOL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IsabelleHOL</span></a> <a href="https://mathstodon.xyz/tags/LLMs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LLMs</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Logic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Logic</span></a> <a href="https://mathstodon.xyz/tags/LogicProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LogicProgramming</span></a> <a href="https://mathstodon.xyz/tags/Math" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Math</span></a> <a href="https://mathstodon.xyz/tags/Prolog" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Prolog</span></a> <a href="https://mathstodon.xyz/tags/SMT" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SMT</span></a> <a href="https://mathstodon.xyz/tags/Z3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Z3</span></a></p>
Boyd Stephen Smith Jr.<p>Added unfolds to the <a href="https://hachyderm.io/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> version and improved the test coverage to 75%, though I lost coverage on the gfold/gfoldHMu</p><p><a href="https://gitlab.com/bss03/nested/-/blob/main/hs/Nested.hs" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">gitlab.com/bss03/nested/-/blob</span><span class="invisible">/main/hs/Nested.hs</span></a></p><p>Still good work for the evening, I think.</p><p>Anyone out there have a good example of using a gfold / gunfold where the functor arguments to Ran/Lan are distinct? I don't remember any from the paper I'm working from, tho I will check again.</p>
Tariq<p>If anyone wants to learn <a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a> I would recommend this online course from the University of Helsinki </p><p><a href="https://haskell.mooc.fi" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">haskell.mooc.fi</span><span class="invisible"></span></a></p><p>Th exercises are particularly good - not too easy, not too difficult, but designed to get you to think in Haskell.</p>
Haskell Weekly<p>[Not April Fools] Faking ADTs and GADTs in Languages That Shouldn't Have Them</p><p><a href="https://blog.jle.im/entry/faking-adts-and-gadts.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.jle.im/entry/faking-adts-</span><span class="invisible">and-gadts.html</span></a></p><p>Discussions: <a href="https://discu.eu/q/https://blog.jle.im/entry/faking-adts-and-gadts.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">discu.eu/q/https://blog.jle.im</span><span class="invisible">/entry/faking-adts-and-gadts.html</span></a></p><p><a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a> <a href="https://mastodon.social/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a></p>
Tariq<p>here's how I did it with a helper function</p><p><a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a></p><p>---</p><p>interpreter commands = interpreter' commands 0 0 []</p><p>interpreter' [] x y result = result<br>interpreter' (c:cs) x y result = case c of<br> "up" -&gt; interpreter' cs x (y + 1) result<br> "down" -&gt; interpreter' cs x (y - 1) result<br> "left" -&gt; interpreter' cs (x - 1) y result<br> "right" -&gt; interpreter' cs (x + 1) y result<br> "printX" -&gt; interpreter' cs x y (result ++ [show x])<br> "printY" -&gt; interpreter' cs x y (result ++ [show y])</p>
Tariq<p><a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a> advice needed.</p><p>I'm doing a "challenge" exercise - the idea is to implement a simple interpreter that requires state being maintained (x and y coords for a turtle language)</p><p>interpreter:: [String] -&gt; [String]<br>(list of commands to list of output strings)</p><p>I can do it by using a recursive helper function that takes the state vars, initially set to 0.</p><p>The challenge is to do it without a helper function, to build output [String] directly.</p><p>What's the `map` idiom where you maintain state?</p>
José A. Alonso<p><a href="https://mathstodon.xyz/tags/Exercitium" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Exercitium</span></a>: Número de pares de elementos adyacentes iguales en una matriz. <a href="https://jaalonso.github.io/exercitium/posts/2014/05/21-pares_adyacentes_iguales/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/exercitium/</span><span class="invisible">posts/2014/05/21-pares_adyacentes_iguales/</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/Programaci%C3%B3nFuncional" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ProgramaciónFuncional</span></a> <a href="https://mathstodon.xyz/tags/Matem%C3%A1ticas" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Matemáticas</span></a></p>
José A. Alonso<p>Readings shared March 31, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/03/31-readings_shared_03-31-25" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/03/31-readings_shared_03-31-25</span></a> <a href="https://mathstodon.xyz/tags/CompSci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CompSci</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/IsabelleHOL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IsabelleHOL</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Logic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Logic</span></a> <a href="https://mathstodon.xyz/tags/Math" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Math</span></a></p>
Haskell Weekly<p>Function Application Needs to Grow a Spine Already</p><p><a href="https://thunderseethe.dev/posts/function-application-grow-a-spine/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">thunderseethe.dev/posts/functi</span><span class="invisible">on-application-grow-a-spine/</span></a></p><p>Discussions: <a href="https://discu.eu/q/https://thunderseethe.dev/posts/function-application-grow-a-spine/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">discu.eu/q/https://thunderseet</span><span class="invisible">he.dev/posts/function-application-grow-a-spine/</span></a></p><p><a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a> <a href="https://mastodon.social/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://mastodon.social/tags/programminglanguages" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programminglanguages</span></a></p>
Matthew Turland<p><a href="https://phpc.social/tags/Malware" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Malware</span></a> is harder to find when written in obscure languages • The Register<br><a href="https://www.theregister.com/2025/03/29/malware_obscure_languages/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">theregister.com/2025/03/29/mal</span><span class="invisible">ware_obscure_languages/</span></a></p><p><a href="https://phpc.social/tags/Lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Lisp</span></a> <a href="https://phpc.social/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://phpc.social/tags/Delphi" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Delphi</span></a> <a href="https://phpc.social/tags/Golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Golang</span></a> <a href="https://phpc.social/tags/Dart" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Dart</span></a> <a href="https://phpc.social/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://phpc.social/tags/Security" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Security</span></a></p>
Lobsters<p>Introducing the Haskell Foundation Stability Working Group <a href="https://lobste.rs/s/2mpqub" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">lobste.rs/s/2mpqub</span><span class="invisible"></span></a> <a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a><br><a href="https://blog.haskell.org/stability-working-group/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">blog.haskell.org/stability-wor</span><span class="invisible">king-group/</span></a></p>
Tariq<p>why does this work</p><p>powers k max = takeWhile (&lt;= max) [k^x | x &lt;- [0..] ]</p><p>but this hangs...</p><p>powers k max = [k^x | x &lt;- [0 .. ], k^x &lt;= max]</p><p><a href="https://mastodon.social/tags/haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>haskell</span></a></p>
José A. Alonso<p><a href="https://mathstodon.xyz/tags/Exercitium" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Exercitium</span></a>: Elemento más repetido de manera consecutiva. <a href="https://jaalonso.github.io/exercitium/posts/2014/05/20-mas_repetido/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/exercitium/</span><span class="invisible">posts/2014/05/20-mas_repetido/</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/Programaci%C3%B3nFuncional" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ProgramaciónFuncional</span></a></p>
José A. Alonso<p>Readings shared March 30, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/03/30-readings_shared_03-30-25" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/03/30-readings_shared_03-30-25</span></a> <a href="https://mathstodon.xyz/tags/Coq" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Coq</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/IsabelleHOL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IsabelleHOL</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Math" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Math</span></a> <a href="https://mathstodon.xyz/tags/Maxima" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Maxima</span></a></p>
Boyd Stephen Smith Jr.<p>I wish more people did mutation testing.</p><p>But, right now, MuCheck for <a href="https://hachyderm.io/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> makes it really obnoxious because everything to be tested AND all the tests have to be in the same module.</p><p>That said, I am _entirely_ uninterested in trying to parse the GHC source language in order to mutate it myself. I wonder how awkward lib-ghc-parser is these days. (Only being able to mutate Haskell-by-the-Report would be near useless in practice.)</p><p>It really feels like the part to be mutated can be determined by the coverage HPC is already generating, and True / False mutants can be generated easily enough from the places HPC already flags as always false / always true. Running the test suite again on the mutated code is a bit awkward, but tighter integration with cabal might make it easier.</p><p>Using Quickcheck (Arbitrary) or Smallcheck (Serial) could generate mutants for any covered (non-Bool) subexpresison that has the right instance.</p><p>I've got far more "urgent / important" stuff to work on, tho.</p>
Boyd Stephen Smith Jr.<p>Help me <a href="https://hachyderm.io/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> I'm trying to get coverage working with my cabal test suite:</p><p>```<br>% cabal configure --enable-coverage<br>'cabal.project.local' already exists, backing it up to 'cabal.project.local~'.<br>% cabal test<br>Build profile: -w ghc-9.6.6 -O1<br>In order, the following will be built (use -v for more details):<br> - nested-0.1.0.0 (configuration changed)<br>Configuring nested-0.1.0.0...<br>Preprocessing library for nested-0.1.0.0..<br>Building library for nested-0.1.0.0..<br>[1 of 1] Compiling Nested ( hs/Nested.hs, /home/bss/git/nested/dist-newstyle/build/x86_64-linux/ghc-9.6.6/nested-0.1.0.0/build/Nested.o, /home/bss/git/nested/dist-newstyle/build/x86_64-linux/ghc-9.6.6/nested-0.1.0.0/build/Nested.dyn_o ) [HPC flags changed]<br>Preprocessing test suite 'detailed' for nested-0.1.0.0..<br>Building test suite 'detailed' for nested-0.1.0.0..<br>[1 of 1] Compiling Main ( /home/bss/git/nested/dist-newstyle/build/x86_64-linux/ghc-9.6.6/nested-0.1.0.0/build/detailedStub/detailedStub-tmp/detailedStub.hs, /home/bss/git/nested/dist-newstyle/build/x86_64-linux/ghc-9.6.6/nested-0.1.0.0/build/detailedStub/detailedStub-tmp/Main.o ) [Missing object file]<br>&lt;command-line&gt;: fatal error: /home/bss/git/nested/dist-newstyle/build/x86_64-linux/ghc-9.6.6/nested-0.1.0.0/build/detailedStub/autogen/cabal_macros.h: No such file or directory<br>compilation terminated.</p><p>&lt;no location info&gt;: error:<br> `x86_64-linux-gnu-gcc' failed in phase `C Compiler'. (Exit code: 1)<br>```</p>
José A. Alonso<p>Exámenes de "Programación funcional con Haskell" Vol. 2 (Curso 2010–11). <a href="https://web.archive.org/web/https://raw.githubusercontent.com/jaalonso/Examenes_de_PF_con_Haskell_Vol2/master/Libro/Examenes_de_PF_con_Haskell_Vol2.pdf" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">web.archive.org/web/https://ra</span><span class="invisible">w.githubusercontent.com/jaalonso/Examenes_de_PF_con_Haskell_Vol2/master/Libro/Examenes_de_PF_con_Haskell_Vol2.pdf</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/Programaci%C3%B3nFuncional" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ProgramaciónFuncional</span></a> <a href="https://mathstodon.xyz/tags/Matem%C3%A1ticas" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Matemáticas</span></a></p>