Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
On hoot, on boot (wingolog.org)
83 points by davexunit on May 18, 2024 | hide | past | favorite | 15 comments


Side note but it is sad as hell that arguments.callee is gone (in esm, a long with arguments in general), which was such an excellent way for functions to take whatever bindings it has & turn them into accessors. I miss like hell the JS world where functions could easily show off some internals.

    function add(a) {
        return a + arguments.callee.amount
    }
    add.amount = 2
    console.log(add(2)) // => 4
(In this simple eread-only example arguments.callee could be be replaced with add, but if one is doing inline function definitions or other cases that's not possible.)

And that was something devs explicitly had to do in their libraries! But in guile there's some automatic capability to expose your bindings.

> Guile programs can use first-class accessors on the module systems to pull out bindings.

In general, I strongly feel like the ability for the language to let developers explore the bindings is like "the" missing piece of programming language systems, is one of the primary gates to good metaprogramming ever emerging. I wish the runtime would be observable.


You can still emulate this to an extent with a wrapper function:

  function selfBind(f) {
      return function g(...args) {
          return f.call(this, g, ...args);
      };
  }
  
  let add = selfBind(function (callee, a) {
      return a + callee.amount;
  });
  add.amount = 2;
  /* ... */
Though obviously it isn't quite as straightforward as 'arguments.callee'.


COMEFROM considered harmful?


Is it me, or was there an attempt to inject words that rhyme with hoot in every sentence?

But more to the point, I absolutely love how well Hoot works, I've been playing with it for the last month and plan on doing the next Lisp game jam with it.


An astute observation that would be hard to dispute.


Reading this was definitely a hoot.


Well ain't that just cute.


like you have a horn to toot, Or perhaps a flute?


Second paragraph, the only candidate is "about", so I guess the writer is Canadian.


"substitutes" - plurals don't rhyme right.


could someone explain the difference between r6rs modules and guile modules? I may have been distracted by the cute alliteration.

Is the difference that you can literally fetch some name defined in a module at runtime vs it being a purely static thing a-la C includes?


Woot. JavaScript will be moot.


Hoot looks awesome, but I've yet to get past the initial hurdle of screwing around with guix. Frankly, I need another package manager like I need a hole in the head.

It really needs someone to give other package managers some love (Homebrew, apt, rpm...)


Not actually true, those pm's need to be reimplemented in nix/scheme.

But I get your point.


Cute!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: