jesper, to Blog
@jesper@agda.club avatar

I wrote a blog post about Agda Core! It's a bit long and not very polished, but I'm happy to have it finished (thanks to a long and distraction-free train ride to Swansea).

jesper.cx/posts/agda-core.html

abucci, to ProgrammingLanguages
@abucci@buc.ci avatar

A weird thing about being 50 is that there are programming languages that I've used regularly for longer than some of the software developers I work with have been alive. I first wrote BASIC code in the 1980s. The first time I wrote an expression evaluator--a fairly standard programming puzzle or homework--was in 1990. I wrote it in Pascal for an undergraduate homework assignment. I first wrote perl in the early 1990s, when it was still perl 4.036 (5.38.2 now). I first wrote java in 1995-ish, when it was still java 1.0 (1.21 now). I first wrote scala, which I still use for most things today, in 2013-ish, when it was still scala 2.8 (3.4.0 now). At various times I've been "fluent" in 8086 assembly, BASIC, C, Pascal, perl, python, java, scala; and passable in LISP/Scheme, Prolog, old school Mathematica, (early days) Objective C, matlab/octave, and R. I've written a few lines of Fortran and more than a few lines of COBOL that I ran in a production system once. I could probably write a bit of Haskell if pressed but for some reason I really dislike its syntax so I've never been enthusiastic about learning it well. I've experimented with Clean, Flix, Curry, Unison, Factor, and Joy and learned bits and pieces of each of those. I'm trying to decide whether I should try learning Idris, Agda, and/or Lean. I'm pretty sure I'm forgetting a few languages. Bit of 6502 assembly long ago. Bit of Unix/Linux shell scripting languages (old enough to have lived and breathed tcsh before switching to bash; I use fish now mostly).

When I say passable: in graduate school I wrote a Prolog interpreter in java (including parsing source code or REPL input), within which I could run the classic examples like append or (very simple) symbolic differentiation/integration. As an undergraduate I wrote a Mathematica program to solve the word recognition problem for context-free formal languages. But I'd need some study time to be able to write these languages again.

I don't know what the hell prompted me to reminisce about programming languages. I hope it doesn't come off as a humblebrag but rather like old guy spinning yarns. I think I've been through so many because I'm never quite happy with any one of them and because I've had a varied career that started when I was pretty young.

I guess I'm also half hoping to find people on here who have similar interests so I'm going to riddle this post with hashtags:

#C #R

abucci,
@abucci@buc.ci avatar

@BoydStephenSmithJr How do you find using Haskell in a work setting? I always feel like I'm under time pressure and don't have as much as I would like to think through a design. I'm never satisfied with my Scala code for that reason and I feel like it'd feel even worse with Haskell since it's so much more concise.

Am not familiar with GMDTT, will have to check that out! So many things to learn 🤯

BoydStephenSmithJr,
@BoydStephenSmithJr@hachyderm.io avatar

@abucci This is my second Haskell job and I'm sure things will depend on the organization around you, but I just do the first thing that I can think of that "will work", make it as simple / concrete / specialized as possible until I have something that compiles without warnings, and only then do I let myself generalize / abstract things. Try to stick documentation on all new top-level bindings while my motivation is fresh, and allow myself to rewrite later.

YMMV, HTH

terrorjack, to random
@terrorjack@functional.cafe avatar

seems to compile with ghc wasm backend with just a bit of modification (remove custom setup & gitrev)! i'm not familiar with agda internals, but as long as it only involves file i/o and doesn't need to spawn processes to do real work, then in principle it shouldn't be hard to get a fully functional agda in browser working :)

terrorjack,
@terrorjack@functional.cafe avatar
jesper, to random
@jesper@agda.club avatar

New blog post about core languages and #Agda: "6 Reasons in favor of a core language, and 5 against"

jesper.cx/posts/why-not-a-core-language.html

jfdm,
@jfdm@discuss.systems avatar

@d_christiansen @jfdm @jesper yeah, my standard pattern for DSL engineering is:

DSL = embedded DSL + standalone DSL

Intrinsically typed core (terms + semantics) paired with an elaborator + lexer + parser to generate core terms from an externally defined language instance. With this approach I can write decent error messages. Unfortunately, this means the DSL is external to the tooling of the host language. I can live with that…

d_christiansen,
@d_christiansen@mathstodon.xyz avatar

@jfdm @jesper That's a really nice thing about Racket and Lean - the DSL still gets to be internal and the tools still work!

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

jesper, to FunctionalProgramming
@jesper@agda.club avatar

We are organizing the FP Dag aka Dutch Functional Programming Day on Friday the 5th of January in Delft. People from neighboring countries are also very welcome to join!

The (soft) registration deadline is on the 22th of December (next Friday), so get your tickets soon!

https://www.tudelft.nl/fpday-2024

#FP #FPDag #FunctionalProgramming #Haskell #OCaml #Scala #Racket #Scheme #Agda #Coq #Idris #Lean #AndAllTheOtherLanguagesIForgot

brokenix, to random
@brokenix@emacs.ch avatar
jesper, to haskell
@jesper@agda.club avatar

I really need this in my Haskell: github.com/ghc-proposals/ghc-proposals/pull/621

Sadly, even if it gets merged it will take at least 5 more years before we can use it in the Agda codebase.

#Haskell #Agda #LinearConstraints

dpwiz,
@dpwiz@qoto.org avatar

@jesper Better start merging…

Why 5 more years for Agda? Aren’t you in control of your toolchain?

BoydStephenSmithJr, to vim
@BoydStephenSmithJr@hachyderm.io avatar

Does anyone else do #Agda with #Vim without #DeprecatedPython2 ? The main agda-vim plugin doesn't work at all. The tc-0 fork does some things, but mostly emits bytes v str errors. Last time I tried the agda-language-server, I couldn't get it to compile.

I think some tooling will let me put together this evaluate function a lot faster.

jaror,
jaror avatar

@BoydStephenSmithJr I've given in and just use evil doom Emacs. It's bearable. For me the biggest problem is the performance of Agda itself.

patrikja, to haskell
@patrikja@functional.cafe avatar

The local season for writing MSc thesis project proposal is here and I have formulated a few ideas for students to start from. They are posted in Chalmers' "MSc thesis portal" and linked from here:
https://patrikja.owlstown.net/posts/1968-msc-thesis-proposals

In short, if you want to come to Gothenburg and work with #Agda or #Haskell in relation to some of my research interests, do get in touch.

jesper, to haskell
@jesper@agda.club avatar

Tomorrow is already the deadline for the third edition of , the Workshop on the Implementation of Type Systems, colocated with 2024 in London. The page limit is one page, but just a single-paragraph abstract with an interesting idea for a talk is also very welcome! In particular contributors to and even are warmly invited to give a talk about their experiences with implementing type systems.

Call for papers: popl24.sigplan.org/home/wits-2024#Call-for-Participation
Submission link: wits24.hotcrp.com/

BoydStephenSmithJr, to haskell
@BoydStephenSmithJr@hachyderm.io avatar

Does anyone have a #haskell or #agda GADT that models both general terms AND closed terms not containing any redex (values)?

I seem to remember reading a random internet page with such a construction, but I can't remember enough for my Internet searching today to find it.

Jose_A_Alonso, to Logic
@Jose_A_Alonso@mathstodon.xyz avatar
chrisamaphone, to random
@chrisamaphone@hci.social avatar

here are 3 screen recordings of me doing the same proof (that doubling a number gives you an even number) in #twelf, #agda, and #coq.

twelf: https://www.convivial.tools/proof-videos/double-twelf.mov

agda: https://www.convivial.tools/proof-videos/double-agda.mov

coq: https://www.convivial.tools/proof-videos/double-coq.mov

(note i'm much less familiar with agda and coq, as well as emacs, which is what i'm using to edit both of those proofs)

i wanted to do this to demonstrate the 3 ways that these tools enable interactive proof construction -- very distinct, but i think with similar aims.

chrisamaphone,
@chrisamaphone@hci.social avatar

on the other hand, i think a lot of coq/lean enthusiasts think that tactics are the only way to get this kind of interactivity -- writing partial proofs, seeing your forward-derived assumptions alongside your goal -- whereas the agda and twelf proofs demonstrate otherwise. in the twelf case, you don't even need a fancy emacs mode (as long as you're fine with reloading whole files at a time).

chrisamaphone,
@chrisamaphone@hci.social avatar

maybe it's because agda and twelf are lesser-known proof assistants, and no one thinks you want to write general purpose programs with tactics (...do they?? 😅 ) so no one thinks it would help? but then we have people using copilot/chatgpt/whatever to do "code completion" which is literally this task except it skips the part where the programmer understands anything.

rml, (edited ) to mathematics
@rml@functional.cafe avatar

"Concerning computer assisted proofs, it seems to me the main obstacle is user friendliness; if you want this to become a part of the culture of mathematics, that when you submit a paper it includes a computer verification that the paper is correct -- I think this is very unlikely to become a part of the culture of mathematics, but if you want it to -- then, what you need is proof assistants that mathematicians are willing to use, so that it doesn't take 100 times as long to provide that certificate as it does to produce a paper the usual way."

  • Jacob Lurie

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

#theoremprovers #coq #agda #lean #mathematics #hott

rml,
@rml@functional.cafe avatar

also worth noting the discussion between Lurie, Urs Schreiber, and others in the comments of this post on Mathematics Without Apologies, one of the more epic flame wars in internet history

https://mathematicswithoutapologies.wordpress.com/2015/05/13/univalent-foundations-no-comment/

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