Rebmμ (10 caractères)
e? AtsAuqA
Le truc "mushing" de Rebmu est qu'il est insensible à la casse, donc les personnages sont exécutés ensemble. Chaque fois qu'une transition de casse est touchée, cela se scinde au prochain jeton. En utilisant des transitions au lieu de choses du genre CamelCase, le choix unique de commencer par une course majuscule signifie qu'un "mot fixe" est créé. (Bien que les mots définis puissent être utilisés à d'autres fins dans la programmation symbolique, ils sont évalués comme assignations par défaut).
Donc, cela "dissipe" de:
e? a: ts a uq a
L'espace est nécessaire, car une fois que vous avez commencé une série de séries de cas, vous ne pouvez pas utiliser cette astuce pour obtenir un mot défini après le premier, à moins que vous ne commenciez une nouvelle série. Alors, e?AtsAuqA
je vous aurais eu e? a ts a uq a
... aucune affectation.
(Remarque: pour une raison qui peut ne pas être particulièrement bonne, j'ai tendance à préférer repenser les solutions pour qu'il n'y ait pas d'espaces, si le nombre de caractères est égal. Puisque les crochets, les parenthèses et les chaînes se terminent implicitement à un symbole ... nombre de possibilités pour cela.)
Dans tous les cas, lorsque mappé sur le Rebol qu’il abrévie:
equal? a: to-string a unique a
Jeter quelques parenthèses pour vous aider à comprendre l'essentiel de l'ordre d'évaluation:
equal? (a: (to-string a)) (unique a)
Ainsi, l'opérateur d'égalité de préfixe est appliqué à deux arguments: le premier est le résultat de l'affectation a
de la version de chaîne de lui-même et le second, du résultat de unique
son exécution sur cette chaîne. Il se trouve que unique vous rendra les éléments dans le même ordre que vous les avez passés ... si unique de "31214" est "3124" par exemple.
Exécutez-le avec:
>> rebmu/args "e? AtsAuqA" 17308459
== true
Il y a aussi quelques statistiques et informations de débogage:
>> 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
Si l'exigence est que vous devez définir une fonction nommée / réutilisable, vous pouvez créer une "fonction A" qui prend implicitement un paramètre nommé a avec a|
. (Une fonction B serait créée avec b|
et prendrait un paramètre nommé A puis un nommé B). Donc, cela ajouterait cinq autres caractères ... disons que vous appelez la fonction "f"
Fa|[e? AtsAugA]
"Tu ris! Ils se moquaient d'Einstein! Ou attends ... est-ce qu'ils ont? Je ... ne sais pas."