Translate

jueves, 17 de septiembre de 2026

Quickysort en Joy


Un algoritmo que me gusta mucho es el quicksort, porque es un algoritmo por demás claro. Ya he escrito lo fácil que es implementarlo en Erlang, Rust, haskell y lisp

Ahora le toca a Joy. Básicamente, el algoritmo toma un pivote y agrupa los menores que el pivote al principio y los mayores al final y aplica quicksort a estos dos grupos. Y si la lista es vacía o tiene un elemento, ya está ordenada. 

Vamos al código: 


DEFINE qsort ==

    [small]

    []

    [uncons [>] split]

    [swapd cons concat]

    binrec.


La clave es binrec: recibe cuatro programas entre corchetes:

  1. [small] → condición de terminación.
  2. [] → qué hacer cuando la lista ya es pequeña.
  3. [uncons [>] split] → separar usando el primer elemento como pivot.
  4. [swapd cons concat] → recombinar los resultados.

No hay comentarios.:

Publicar un comentario