@DiazCarrete@hachyderm.io avatar

DiazCarrete

@DiazCarrete@hachyderm.io

This profile is from a federated server and may be incomplete. Browse more on the original instance.

samplereality, to random
@samplereality@post.lurk.org avatar

Twice in the past week I've read scholars who should know better repeat the urban legend that the QWERTY keyboard was designed to slow down typing, and thus, jamming, on early typewriters.

That'd be cool if it were true, but it's not, and the the truth is even cooler. The QWERTY keyboard evolved over time, shaped by two forces: (1) since the early machines were used by telegraph operators, the keys were arranged to avoid common transcription errors; and (2) competing patents of the typewriter slightly arranged the keyboard layout in order to qualify as new (and therefore patentable) designs.

Check out this research for more: https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/139379/1/42_161.pdf

irene, to random
@irene@discuss.systems avatar

Important preparation for a PC chair: assemble PC program, pick best paper awards, find session chairs and program your Chanel handbag.

Chanel LED handbag with my name.

jesper, to random
@jesper@agda.club avatar

Is there anything known about the efficiency implications of using HOAS for representing the (internal) syntax of a lambda calculus instead of de Bruijn syntax? Assuming one can get away with it, it seems like it could theoretically speed things up compared to looking up things in lists. OTOH functions can do arbitrary things, so I imagine much would depend on how you actually construct these.

Maybe @AndrasKovacs has an idea?

wouter,
@wouter@functional.cafe avatar

@jesper If you're interested in benchmarks, you may want to have a look at Lennart's Lambda Calculus Cooked Four Ways (https://github.com/steshaw/lennart-lambda/blob/master/top.pdf) and Stephanie's Cooked n-Ways: https://github.com/sweirich/lambda-n-ways/tree/main. It seems like HOAS is really fast...

Jose_A_Alonso, to haskell
@Jose_A_Alonso@mathstodon.xyz avatar

Extending destination-passing style programming to arbitrary data types in Linear Haskell. ~ Thomas Bagrel. https://www.tweag.io/blog/2024-03-07-dps-haskell

BartoszMilewski, to random
@BartoszMilewski@mathstodon.xyz avatar

I summarized my discussions with Arnaud Spiwack about linear lenses in a new blog post. https://bartoszmilewski.com/2024/02/07/linear-lenses-in-haskell/

wiremock, to random
@wiremock@fosstodon.org avatar

This is a really nice article from HubSpot on API mocking, detailing the benefits, examples and the tools you can use

https://blog.hubspot.com/website/api-mocking

MartinEscardo, to random
@MartinEscardo@mathstodon.xyz avatar

The notion of computability for functions ℕᵏ → ℕ is uncontroversial today, and it was never controversial. The Church-Turing Thesis is generally accepted by mathematicians, computer scientists, logicians and philosophers. Such a function is computable if and only if there is a Turing machine that computes it.

Moreover, the notion of computability with finite objects, such as trees, graphs, tables, etc. is also uncontroversial, by reduction to the above.

Computation with finite objects can be reduced to computation with natural numbers, by Gödel-type encodings.

One would not, of course, usually use such encodings to compute in practice, but, in order to ask the question "is this function computable?", such encodings are perfectly fine.

But then come higher-type computability. In its simplified form, it is about computation with types (ℕ → ℕ) → ℕ, and ((ℕ → ℕ) → ℕ) → ℕ, etc., where one starts with that of natural numbers ℕ (and perhaps the booleans 𝟚), and closes under function spaces (and perhaps under products × and coproducts +). These parenthetical remarks don't really make a difference. In fact, very much like (first-order) computability over ℕ is really about computability with finite objects, computability over higher types such as the above is really about computability with infinite objects.

There seem to be two canonical answers: (1) HEO, the "hereditarily effective total functionals", which are modeled by Kleene's first combinatory algebra K₁, and (2) C, "the continuous functionals", which are modelled by Kleene's second combinatory algebra K₂.

1/

MartinEscardo,
@MartinEscardo@mathstodon.xyz avatar

Now it turns out that if one tries to cook-up sensible notions of higher-type computability, one ends up invariably landing in (1) HEO or (2) C discussed above.

There is a nice paper by John Longley, called "On the ubiquity of certain type structures", which explains mathematically, rather than philosophically, why this is the case.

I also recommend Longley and Normann's 2015 book "Higher-order computability", particularly if you are a functional programmer who often works with higher types.

There is much, much more to say, and perhaps I will say it as a future continuation of this thread.

But here is the main lesson to be learned here: when you compute with infinite data, it does matter whether the data is given by an algorithm (this is K₁-computability) or by an "oracle" (this is K₂ computability).

For example, is the continuous weather forecast, or news updates, reported on my phone, given by an algorithm or by an oracle? Does your phone give you the Gödel number of the supposed program that generates the news? If so, you are the lucky owner of a K₁ phone. If not, you are the lucky owner of a K₂ phone, for which the Cantor type is compact, as it should. 🙂

3/

Jose_A_Alonso, to random
@Jose_A_Alonso@mathstodon.xyz avatar

The functional essence of imperative binary search trees. ~ Anton Lorenzen, Daan Leijen, Wouter Swierstra & Sam Lindley. https://www.microsoft.com/en-us/research/uploads/prod/2023/07/fiptree-tr-v4.pdf

epatters, to random

The first of a series of posts explaining "why double categories?":

https://www.epatters.org/post/why-double-categories-1/

A personal goal this year is write more at an expository level, so I hope there will be much more along these lines!

regehr, to random
@regehr@mastodon.social avatar

wikipedia has so many gems, but this has to be one of the best.

related, English is such a clusterfuck, what a crazy language

but also I'm completely obsessed with heteronyms, they're the best thing ever

Jose_A_Alonso, to FunctionalProgramming
@Jose_A_Alonso@mathstodon.xyz avatar

Polynomial functors in Agda: Theory and Practice (A formalization and collection of applications of categories of polynomial functors). ~ André Muricy Santos Marcus Jörgensson. https://odr.chalmers.se/server/api/core/bitstreams/774ba4a2-58b4-407f-aa6b-b0209b6c7d70/content

julesh, to random
@julesh@mathstodon.xyz avatar

Knives are cutlery, forks are stabblery, spoons are scooplery

domenkozar, to random

I've been prototyping a high-level library for websockets in Haskell in the last few weeks.

Came up with: https://github.com/cachix/websockets-simple

Thoughts?

[Well-Typed] The Haskell Unfolder Episode 17: circular programs (www.youtube.com)

A circular program is a program that depends on its own result. It may be surprising that this works at all, but laziness makes it possible if output becomes available sooner than it is required. In this final episode of 2023, which will be longer than usual (probably 45-60 minutes), we will take a look at several examples of...

jaror,
jaror avatar

This was a fun episode. I was introduced to breadth first labeling and attribute grammars by Doaitse Swierstra at the Applied Functional Programming summer school in Utrecht. He was an inspiring figure.

The biggest disadvantage of circular programs is that it is very easy to get into infinite loops when you make mistakes. I wish there was an easy way to guarantee statically that circular programs are terminating (perhaps using types).

There is also a recent paper about implementing breadth-first traversals without relying on laziness: https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/traversals.pdf. Unfortunately, that does not contain any benchmarks.

kevlin, to random
@kevlin@mastodon.social avatar

There is a TDD exercise I run in a number of courses and workshops that involves creating a recently used list class (as in a recently open files menu or MRU cache).

One thing I find interesting is that the majority of developers do not use the most obvious name for the class — i.e., RecentlyUsedList, which is the title of the exercise and the term used consistently throughout the description — and instead seem to almost go out of their way to avoid any reference to the terminology used.

Jose_A_Alonso, to random
@Jose_A_Alonso@mathstodon.xyz avatar

Folding left and right matters: Direct style, accumulators, and continuations. ~ Olivier Danvy. https://bit.ly/41oDc1f #ITP #Coq

hunleyd, to postgres
@hunleyd@fosstodon.org avatar
jonmsterling, to random
@jonmsterling@mathstodon.xyz avatar

The good news is that Controlled Unfolding in Agda works great...

Thanks @amy and others on the team for implementing this!

Agda docs: https://agda.readthedocs.io/en/latest/language/opaque-definitions.html

Manuscript with complete metatheory (joint work with @danielgratzer, Carlo Angiuli, @BirkedalLars, and Thierry Coquand): https://arxiv.org/abs/2210.05420

nipafx, to random
@nipafx@mastodon.social avatar

Tired of every null tracker having their own annotations and implementing their own logic? Then JSpecify is for you! Here's Kevin Bourrillion presenting it on my live stream:

https://www.youtube.com/watch?v=HS_kA42YNkU

julesh, to random
@julesh@mathstodon.xyz avatar

The polynomial functors book by Nelson Niu and David Spivak finally dropped in a finished form, free on arXiv as usual
https://arxiv.org/abs/2312.00990

PierreZ, to NixOS

Unveiling the Power of the Integration Test Driver (Part 2) https://nixcademy.com/2023/12/01/nixos-integration-tests-part-2/

AlexisToumi, to random

Check out our new preprint "Higher-Order DisCoCat (Peirce-Lambek-Montague semantics)"! @gio_defel

https://arxiv.org/abs/2311.17813

too long; didn't read? here's a meme that summarises the paper

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • cubers
  • osvaldo12
  • mdbf
  • magazineikmin
  • normalnudes
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • khanakhh
  • ethstaker
  • Leos
  • ngwrru68w68
  • everett
  • cisconetworking
  • tacticalgear
  • anitta
  • thenastyranch
  • Durango
  • tester
  • GTA5RPClips
  • modclub
  • megavids
  • provamag3
  • lostlight
  • All magazines