home.social

#fennellang — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #fennellang, aggregated by home.social.

fetched live
  1. Are you a Lisper? If yes, What made #lisp special in your view?

    @lxsameer a few things:

    • absolute minimum amount of syntax, makes it very easy to understand how the computer sees each part of the program, makes it easy to implement your own parser if you want to.
    • the ability to define your own evaluator for Lisp syntax, also made considerably easier than other languages due to the minimal syntax. This also makes it easy to develop your own tooling, or to modify existing tooling for the language, which brings me to the next point…
    • macro programming: the ability to hack the Lisp compiler itself so that it can run your own evaluator. This allows you to introduce language features when and where you need them, like linting, type checking, literate programming, alternative evaluation strategies (e.g. lazy evaluation, or concurrent evaluation), etc.
    • functional programming: it is based on the mathematics of lambda calculus, which is a very elegant way of defining algorithms and computation. It is also a computer for the “untyped lambda calculus“ which can implement any other typed lambda calculus as a system of macros.
    • homoiconicity, again a feature of the minimal syntax, allows you to express programs as data, and data as programs. This is very useful for serialization and transport across multiple computers.
    • REPL-based development, which is a feature many languages have nowadays (although Lisp invented this feature), allows for rapid prototyping and easier debugging.
    • stability: Lisp languages like Common Lisp and Scheme have changed very little throughout the decades as there is no need to change them. Macro programming makes it so that you don’t need too add new language features all the time, language features become extensions you can import into your project.

    #tech #software #ComputerProgramming #Lisp #CommonLisp #SchemeLang #Scheme #Clojure #FennelLang #GerbilLang #RacketLang

  2. Are you a Lisper? If yes, What made #lisp special in your view?

    @lxsameer a few things:

    • absolute minimum amount of syntax, makes it very easy to understand how the computer sees each part of the program, makes it easy to implement your own parser if you want to.
    • the ability to define your own evaluator for Lisp syntax, also made considerably easier than other languages due to the minimal syntax. This also makes it easy to develop your own tooling, or to modify existing tooling for the language, which brings me to the next point…
    • macro programming: the ability to hack the Lisp compiler itself so that it can run your own evaluator. This allows you to introduce language features when and where you need them, like linting, type checking, literate programming, alternative evaluation strategies (e.g. lazy evaluation, or concurrent evaluation), etc.
    • functional programming: it is based on the mathematics of lambda calculus, which is a very elegant way of defining algorithms and computation. It is also a computer for the “untyped lambda calculus“ which can implement any other typed lambda calculus as a system of macros.
    • homoiconicity, again a feature of the minimal syntax, allows you to express programs as data, and data as programs. This is very useful for serialization and transport across multiple computers.
    • REPL-based development, which is a feature many languages have nowadays (although Lisp invented this feature), allows for rapid prototyping and easier debugging.
    • stability: Lisp languages like Common Lisp and Scheme have changed very little throughout the decades as there is no need to change them. Macro programming makes it so that you don’t need too add new language features all the time, language features become extensions you can import into your project.

    #tech #software #ComputerProgramming #Lisp #CommonLisp #SchemeLang #Scheme #Clojure #FennelLang #GerbilLang #RacketLang

  3. Now that I'm no longer writing Clojure full-time, I'm finding ways to keep a Lisp in my life where it makes sense, and I've definitely found a home with Fennel for my Neovim config for now.

    Finding all kinds of silly reasons to write cute little macros...

    #Lisp #FennelLang

  4. Now that I'm no longer writing Clojure full-time, I'm finding ways to keep a Lisp in my life where it makes sense, and I've definitely found a home with Fennel for my Neovim config for now.

    Finding all kinds of silly reasons to write cute little macros...

    #Lisp #FennelLang

  5. Gotta hand it to @pandoc , their Lua filter API is a joy to work with, particularly from #fennel. I'd been meaning for a while to generate some supplementary man pages from the markdown docs for fennel's reference/tutorial/API, and the new standalone pandoc-lua runtime+REPL made it a breeze to write the 61loc man filter to whip the metadata, headings, and tables into shape ❤️

    #lisp #pandoc #fennellang

  6. Huh, I didn't know redis was also among the things with an embedded lua vm. Which means... another big platform you can script in fennel !

    lobste.rs/s/32ew26

    #fennel #fennellang #lisp

  7. Huh, I didn't know redis was also among the things with an embedded lua vm. Which means... another big platform you can script in fennel !

    lobste.rs/s/32ew26

    #fennel #fennellang #lisp

  8. CW: Programming language, silly

    "Anywhere you can run Lua code, you can run Fennel code." - I think these people have far too much confidence in my code 🙃 fennel-lang.org/ #FennelLang #Software #Silly

  9. According to the United States Department of Agriculture (USDA) National Nutrient Database, one raw fennel bulb weighing 234 grams (g) contains:

    72.5 calories.
    0.47 g of fat.
    2.9 g of protein.
    17 g of carbohydrate.
    7.3 g of dietary fiber.
    no cholesterol.

    ... is what I get when I type "Fennel macros" into Google.

    #fennellang

  10. Just published a small #fennel "library" which allows you to import #love2d type definitions as a normal library, and (during development) get autocomplete and documentation from the REPL. When the project runs in a real love2d environment then the "library" will return the reference to the real (global) `love` structure.

    If you're interested, check it out here github.com/tupini07/fennel-lov

    #fennellang