Made with KolourPaint and screenshots from Kate (with the GitHub theme).

    • ThirdConsul@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 hour ago

      Wait until you learn about transducers (Are they in Go? If not natively, someone definitely ported them) and the abominations fp people code with them.

    • sph@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 hours ago

      This obviously just illustrates a point, but callbacks and decorators are not uncommon. And iterators are exactly like that:

      type (
      	Seq[V any]     func(yield func(V) bool)
      	Seq2[K, V any] func(yield func(K, V) bool)
      )
      

      Which is very readable.

      • phlegmy@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        Callbacks and decorators are fine, but callbacks/decorators to a function which itself takes a function pointer and returns another function pointer are crazy.

        I’ve thankfully never had to use recursive callbacks or decorators, but it seems like it could very quickly become difficult to keep track of.