photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for your photos and banter. Photog first is our motto Please refer to the site rules before posting.

Administered by:

Server stats:

242
active users

#functionalprogramming

1 post1 participant0 posts today
Simon Brooke<p><span class="h-card" translate="no"><a href="https://babka.social/@serge" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>serge</span></a></span> Is Scratch not essentially based on <a href="https://mastodon.scot/tags/Smalltalk" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Smalltalk</span></a>? Not knocking it, Smalltalk is also an excellent language, but <a href="https://mastodon.scot/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> is a different, and in my opinion more fundamental, paradigm than <a href="https://mastodon.scot/tags/OOP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OOP</span></a>, and one which I believe it benefits children to be introduced to first.</p>
José A. Alonso<p>Readings shared July 18, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/07/19-readings_shared_07-18-25" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/07/19-readings_shared_07-18-25</span></a> <a href="https://mathstodon.xyz/tags/ACL2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ACL2</span></a> <a href="https://mathstodon.xyz/tags/CompSci" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CompSci</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/LLMs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LLMs</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Rocq" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rocq</span></a> <a href="https://mathstodon.xyz/tags/Rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rust</span></a> <a href="https://mathstodon.xyz/tags/Teaching" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Teaching</span></a></p>
Zelphir Kaltstahl<p>I also got experience with the following (5 = a lot, 1 = a little) :</p><p><a href="https://mastodon.social/tags/machinelearning" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>machinelearning</span></a> <a href="https://mastodon.social/tags/ml" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ml</span></a> (3) (I have implemented some ML models myself in the past, for learning purposes.) <br><a href="https://mastodon.social/tags/guix" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>guix</span></a> (3) (Using it for reproducible setups of projects.)<br><a href="https://mastodon.social/tags/functionalprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functionalprogramming</span></a> <a href="https://mastodon.social/tags/fp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fp</span></a> (5) (Doing it in my own projects.)<br><a href="https://mastodon.social/tags/objectorientedprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>objectorientedprogramming</span></a> <a href="https://mastodon.social/tags/oop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>oop</span></a> (4) (last job and past xp in my own projects.)<br><a href="https://mastodon.social/tags/CI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CI</span></a> / <a href="https://mastodon.social/tags/CD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CD</span></a> (3) (Last job)<br><a href="https://mastodon.social/tags/make" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>make</span></a> (4) (using it for my own project setups and convenience)<br><a href="https://mastodon.social/tags/testing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>testing</span></a> (4) (last job, own projects)</p>
Joseph Nuthalapati :fbx:<p>Gleam is an interesting new functional programming language. It is an ML-family language with syntax very similar to Rust, but it's not a replacement. <br>If you like Rust and don't like Go (or Elixir's Ruby syntax), Gleam might be worth considering for I/O bound applications needing high concurrency. <br>Gleam can also replace Elm on the browser. Code written in Gleam is apparently 30% faster than hand-written JavaScript.</p><p><a href="https://gleam.run" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">gleam.run</span><span class="invisible"></span></a></p><p><a href="https://social.masto.host/tags/Gleam" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Gleam</span></a> <a href="https://social.masto.host/tags/Elixir" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Elixir</span></a> <a href="https://social.masto.host/tags/Rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rust</span></a> <a href="https://social.masto.host/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://social.masto.host/tags/FP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FP</span></a></p>
José A. Alonso<p>Readings shared July 5, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/07/06-readings_shared_07-05-25" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/07/06-readings_shared_07-05-25</span></a> <a href="https://mathstodon.xyz/tags/AI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AI</span></a> <a href="https://mathstodon.xyz/tags/CoqProver" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CoqProver</span></a> <a href="https://mathstodon.xyz/tags/FormalMethods" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FormalMethods</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Math" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Math</span></a> <a href="https://mathstodon.xyz/tags/Maxima" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Maxima</span></a> <a href="https://mathstodon.xyz/tags/PVS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PVS</span></a> <a href="https://mathstodon.xyz/tags/Rocq" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rocq</span></a></p>
José A. Alonso<p>Readings shared July 4, 2025. <a href="https://jaalonso.github.io/vestigium/posts/2025/07/05-readings_shared_07-04-25" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">jaalonso.github.io/vestigium/p</span><span class="invisible">osts/2025/07/05-readings_shared_07-04-25</span></a> <a href="https://mathstodon.xyz/tags/CategoryTheory" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CategoryTheory</span></a> <a href="https://mathstodon.xyz/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mathstodon.xyz/tags/Haskell" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Haskell</span></a> <a href="https://mathstodon.xyz/tags/ITP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ITP</span></a> <a href="https://mathstodon.xyz/tags/IsabelleHOL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>IsabelleHOL</span></a> <a href="https://mathstodon.xyz/tags/LLMs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LLMs</span></a> <a href="https://mathstodon.xyz/tags/LeanProver" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LeanProver</span></a> <a href="https://mathstodon.xyz/tags/Logic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Logic</span></a> <a href="https://mathstodon.xyz/tags/Math" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Math</span></a> <a href="https://mathstodon.xyz/tags/Rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rust</span></a> <a href="https://mathstodon.xyz/tags/TypeTheory" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeTheory</span></a></p>
vascorsd<p>New opening that just appeared in the new place I started working at last month: </p><p>Scala Engineering Team lead.</p><p>It's for a team different from the one I joined.</p><p>Here's the linkedin post which has details in another link.</p><p><a href="https://www.linkedin.com/posts/tikoafrica_scala-engineer-team-lead-activity-7346844966532329473-W7z8?rcm=ACoAABuv1I8BOYXXEU9fGgoZT-zFxXF6xptJCK4" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">linkedin.com/posts/tikoafrica_</span><span class="invisible">scala-engineer-team-lead-activity-7346844966532329473-W7z8?rcm=ACoAABuv1I8BOYXXEU9fGgoZT-zFxXF6xptJCK4</span></a></p><p><a href="https://mastodon.social/tags/Scala" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Scala</span></a> <a href="https://mastodon.social/tags/FediHire" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediHire</span></a> <a href="https://mastodon.social/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mastodon.social/tags/TechForGood" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TechForGood</span></a></p>
powersleep<p><a href="https://www.economist.com/finance-and-economics/2025/06/26/jane-streets-sneaky-retention-tactic" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">economist.com/finance-and-econ</span><span class="invisible">omics/2025/06/26/jane-streets-sneaky-retention-tactic</span></a></p><p><a href="https://defcon.social/tags/OCaml" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OCaml</span></a> <a href="https://defcon.social/tags/functionalprogramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functionalprogramming</span></a> <a href="https://defcon.social/tags/French" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>French</span></a></p>
screwlisp<p><a href="https://gamerplus.org/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://gamerplus.org/tags/softwareEngineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>softwareEngineering</span></a> article <a href="https://screwlisp.small-web.org/programming/tangle/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">screwlisp.small-web.org/progra</span><span class="invisible">mming/tangle/</span></a> <a href="https://gamerplus.org/tags/commonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>commonLisp</span></a> <a href="https://gamerplus.org/tags/asdf" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>asdf</span></a> <a href="https://gamerplus.org/tags/systemsProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>systemsProgramming</span></a> <a href="https://gamerplus.org/tags/series" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>series</span></a> <a href="https://gamerplus.org/tags/pathnames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pathnames</span></a> <a href="https://gamerplus.org/tags/packaging" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>packaging</span></a> </p><p>Really simple... Sort of... But so intricate to write. I deal with (writing a smidge of <a href="https://gamerplus.org/tags/interactive" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>interactive</span></a> <a href="https://gamerplus.org/tags/lazyEvaluation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lazyEvaluation</span></a> <a href="https://gamerplus.org/tags/functionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functionalProgramming</span></a> ) :</p><p>- Tangling markdown into an asdf :class :package-inferred-system lisp system<br>- Doing so with scan-file and collect-file from series<br>- Working with lisp’s make-pathname directories.</p><p><a href="https://gamerplus.org/tags/literateProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>literateProgramming</span></a></p>
Jan :rust: :ferris:<p>List of <a href="https://floss.social/tags/Supercompilation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Supercompilation</span></a> Resources and Papers:</p><p><a href="https://github.com/etiams/supercompilation-resources" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/etiams/supercompila</span><span class="invisible">tion-resources</span></a></p><p>"Supercompilation is a principiled program transformation technique that symbolically evaluates a given input program into its more efficient version, eliminating as much of computational overhead as possible[...]."</p><p><a href="https://floss.social/tags/Compiler" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Compiler</span></a> <a href="https://floss.social/tags/PLT" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PLT</span></a> <a href="https://floss.social/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://floss.social/tags/Performance" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Performance</span></a></p>
☮ ♥ ♬ 🧑‍💻<p>“Hedge funds will go to great lengths in pursuit of <a href="https://ioc.exchange/tags/profits" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>profits</span></a>, whether it is by counting cars in satellite photos of parking lots or shipping gold across the Atlantic. Building a <a href="https://ioc.exchange/tags/compiler" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compiler</span></a>—a piece of <a href="https://ioc.exchange/tags/software" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software</span></a> that turns human-written code into programs a computer can execute—for your homegrown language? That still raises eyebrows.</p><p><a href="https://ioc.exchange/tags/JaneStreet" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JaneStreet</span></a> is the quant shops’ quant shop, and it does just that, with great success. Last year its trading revenue almost doubled, to $21bn, putting it on a par with giants such as <a href="https://ioc.exchange/tags/Citigroup" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Citigroup</span></a> and <a href="https://ioc.exchange/tags/MorganStanley" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MorganStanley</span></a>. And the goose that lays the golden egg is its <a href="https://ioc.exchange/tags/tech" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tech</span></a> system.</p><p>But it is what this system is built from that is really unusual. Other firms employ a hotchpotch of <a href="https://ioc.exchange/tags/ProgrammingLanguages" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ProgrammingLanguages</span></a>, allowing staff to choose the right one for the job. At Jane Street almost everyone works in an obscure tongue developed by French academics: <a href="https://ioc.exchange/tags/OCaml" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OCaml</span></a>. </p><p>Ask a <a href="https://ioc.exchange/tags/trader" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>trader</span></a> at the firm for its benefits and they will reel off a string of features, such as its support for <a href="https://ioc.exchange/tags/StaticTyping" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>StaticTyping</span></a> and <a href="https://ioc.exchange/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a>, that make it hard to learn but powerful when applied to a problem. The company says the language helps “maximise the <a href="https://ioc.exchange/tags/productivity" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>productivity</span></a> of each person we hire”.”</p><p><a href="https://ioc.exchange/tags/HedgeFunds" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HedgeFunds</span></a> / <a href="https://ioc.exchange/tags/finance" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>finance</span></a> &lt;<a href="https://www.economist.com/finance-and-economics/2025/06/26/jane-streets-sneaky-retention-tactic" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">economist.com/finance-and-econ</span><span class="invisible">omics/2025/06/26/jane-streets-sneaky-retention-tactic</span></a>&gt; (paywall) / &lt;<a href="https://archive.md/DQ0ku" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">archive.md/DQ0ku</span><span class="invisible"></span></a>&gt;</p>
Kyle Davis<p>My work on making <a href="https://fosstodon.org/tags/OpenSCAD" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSCAD</span></a> control <a href="https://fosstodon.org/tags/OrcaSlicer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OrcaSlicer</span></a> is progressing. I'm moving from bash to real software.</p><p>I don't have huge needs: parsing JSON &amp; XML un/zipping, and writing files. And I want this to be buildable into a single binary (no VMs or external runtimes). </p><p>I initially reached for <a href="https://fosstodon.org/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a>, but I'm second guessing that. Switching between Go and OpenSCAD is very jarring.</p><p>What general purpose, <a href="https://fosstodon.org/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> language is broadly similar to OpenSCAD (and fits my criteria)?</p>

#ReleaseWednesday — Extracted & extended the LISP-like DSL from an existing #ThingUmbrella example[1] as new small package for better/direct re-use in other projects:

thi.ng/lispy

The core language is kept intentionally minimal, aimed at simple sandboxed data transformations/derivations, small code snippets/expressions in GUIs or config settings. However, the language is very easy to extend/customize with new functions or control flow constructs etc. Currently, the language is interpreted and has the following builtins (see screenshots). There's no macro support so far (and not sure if that's even desired here)...

[1] The original #HowToThing example browser REPL this was extracted from (and which has now been updated to use the new package):

demo.thi.ng/umbrella/lispy-rep

#ThingUmbrella #Lisp #DSL #FunctionalProgramming #REPL

#programming #gamedev #devlog #commonLisp #series #lazyEvaluation #functionalprogramming screwlisp.small-web.org/lispga #lispgamejam
Since cl-series generates native common lisp code by working at macro expansion time, I consider it suitable for my software individuals (who want only clos-less common lisp and their own logic (which they have an introspective theory of).

In particular, I use series to cut out rectangular subsequence of sequences -s

SERIES DOC UPDATE FROM RTOY gitlab.common-lisp.net/rtoy/cl

Progress on my clone of the Emacs Lisp interpreter

This took me three months (a month longer than I had hoped), but I finally have merged it into the main branch!

This patch rewrites the Emacs Lisp lexer and parser in Scheme using Scheme code that is 100% compliant with the #R7RS standard, so it should now work across all compliant Scheme implementations. Previously the old parser relied on #Guile -specific regular expressions.

This patch also implements a new feature where a stack trace is printed when an error occurs. This of course makes debugging much, much easier. Previously the old parser did not keep track of where code evaluation was happening, it simply produced lists without source location information. The new parser constructs an abstract syntax tree (AST) and source locations are attached to the branches of the tree which can be used in error reporting and stack traces.

Next I will make whatever minor tweaks might be necessary to get my Emacs Lisp interpreter run on other Scheme implementations, in particular MIT Scheme, Gambit, Stklos, and Gauche. I would also like to try to get it running on Chicken and Chez, although these are going to be a bit more tricky.

Then I will continue with the task of implementing a new declarative GUI library.

Codeberg.orgDefine new monadic lexer library (gypsum lexer)closes #8 There are two reason to rewrite the reader: 1. The current reader does not track source locations, so error messages do not point you to where they occur 2. The current reader relies on the Guile-specific regular expression library, and this is not portable. This patch defines a ne...
#tech#software#FOSS

F* (fstar) Interactive Tutorial:

fstar-lang.org/tutorial/

I'm only like 10% into the tutorial, but this language is CRAZY (fun)! :awesome: 😄

I try to learn the fundamentals of it, so I can use the backend of it in #Aeneas... so I can ultimately formally verify my #Rust crate (former attempts with #Creusot and #Kani failed for me).

Aeneas:
github.com/AeneasVerif/aeneas

See part two of toot for a toy example of proving function equivalence

1/2

fstar-lang.orgF* Tutorial