Rebmμ (10 caratteri)
e? AtsAuqA
Il trucco "mushing" di Rebmu è che non fa distinzione tra maiuscole e minuscole, quindi i personaggi vengono eseguiti insieme. Ogni volta che viene effettuata una transizione tra maiuscole e minuscole , questa si divide nel token successivo. Usando le transizioni anziché un tipo di cosa CamelCase, la scelta unica di iniziare con una corsa maiuscola significa che viene fatta una "parola-set". (Mentre le parole set possono essere utilizzate per altri scopi nella programmazione simbolica, vengono valutate come assegnazioni di default).
Quindi, questo "si risolve" per:
e? a: ts a uq a
Lo spazio è necessario perché una volta che hai iniziato una serie di sequenze di casi alternati, non puoi usare quel trucco per ottenere una parola dopo la prima a meno che non inizi una nuova corsa. Quindi ti e?AtsAuqA
avrei presoe? a ts a uq a
... nessun incarico.
(Nota: per quella che potrebbe non essere una ragione particolarmente buona, tendo a preferire ripensare le soluzioni in modo che non ci siano spazi, se il conteggio dei caratteri è uguale. Poiché parentesi, parentesi e stringhe finiscono implicitamente un simbolo ... ci sono spesso una fiera numero di opportunità per questo.)
In ogni caso, quando mappato sul Rebol che abbrevia:
equal? a: to-string a unique a
Inserendo alcune parentesi per ottenere l'essenza dell'ordine di valutazione:
equal? (a: (to-string a)) (unique a)
Quindi l'operatore di uguaglianza prefisso viene applicato a due argomenti: il primo il risultato dell'assegnazione a
della versione stringa di se stesso e il secondo il risultato diunique
dell'esecuzione contro quella stringa. Accade così che unique ti restituisca gli elementi nello stesso ordine in cui li hai passati ... così unico di "31214" è "3124" per esempio.
Eseguilo con:
>> rebmu/args "e? AtsAuqA" 17308459
== true
Ci sono anche alcune statistiche e informazioni di debug:
>> rebmu/args/stats/debug "e? AtsAuqA" 48778584
Original Rebmu string was: 10 characters.
Rebmu as mushed Rebol block molds to: 10 characters.
Unmushed Rebmu molds to: 15 characters.
Executing: [e? a: ts a uq a]
== false
Se il requisito è che si deve definire una funzione nominata / riutilizzabile, è possibile creare una "funzione A" che accetta implicitamente un parametro chiamato a con a|
. (Una funzione B verrebbe creata con b|
e prendere un parametro chiamato A quindi uno chiamato B). In modo da aggiungere altri cinque caratteri ... diciamo che si chiama la funzione "f"
Fa|[e? AtsAugA]
"Ridi! Hanno riso di Einstein! O aspettate ... vero? Io ... non lo so."