Questa è una versione standard:
Divide gli elementi in < del primo e chiama ricorsivamente, = al primo, > del primo e chiama ricorsivamente. Continua finché la lista è 1+ elementi.
Nulla di speciale insomma.
Le chiamate ricorsive sono le $:
@signoredeltempo quel linguaggio è derivato da apl, il quale è ancora utilizzato e le uniche implementazioni degne di nota sono commerciali e costose.
Quel linguaggio si comporta in modo sime a K/Q, un altro linguaggio commerciale piuttosto costoso (sostanzialmente un database).
Non sottovalutare...
In ogni caso una volta compresa la sintassi è piuttosto semplice da comprendere.
# > 1: controlla se la lista è più lunga di 1 elemento
^: esegue ciò che precede se ciò che segue è vero, altrimenti restituisce l'argomento
] verb {. passa come argomenti ] l'argomento (ovvero la lista intera) {. il primo elemento della lista
, concatena
< # [ seleziona gli elementi minori del primo elemento
[: $: chiama ricorsivamente la funzione
= # [ seleziona gli elementi uguali al primo
> # [ seleziona gli elementi maggiori del primo
[: $: chiama ricorsivamente la funzione
Basta farci un attimo l'abitudine.



Rispondi quotando