Rebmμ (10 символов)
e? AtsAuqA
Хитрость Ребму в том, что он не учитывает регистр, поэтому персонажи работают вместе. Всякий раз, когда дело переход к регистру, он разделяется на следующий токен. Используя переходы вместо вещей типа CamelCase, уникальный выбор, чтобы начать с капитального прогона, означает, что «заданное слово» сделано. (Хотя заданные слова могут использоваться для других целей в символьном программировании, по умолчанию они оцениваются как назначения).
Так что это "размешивает", чтобы:
e? a: ts a uq a
Это пространство необходимо, потому что после того, как вы начали серию циклов чередующихся вариантов, вы не можете использовать этот трюк, чтобы получить сет-слово после первого, если не начнете новый цикл. Так e?AtsAuqA
бы получил тебяe? a ts a uq a
... без назначения.
(Примечание: по какой-то не очень веской причине я предпочитаю переосмыслить решения, чтобы не было пробелов, если количество символов одинаково. Так как скобки, скобки и строки неявно заканчивают символ ... часто встречаются количество возможностей для этого.)
В любом случае, когда сопоставляется с Rebol, он сокращается:
equal? a: to-string a unique a
Добавьте несколько скобок, чтобы понять суть порядка оценки:
equal? (a: (to-string a)) (unique a)
Таким образом, оператор равенства префикса применяется к двум аргументам: первый - результат присваивания a
строковой версии самого себя, а второй - результат unique
запуска этой строки. Бывает так, что unique вернет вам элементы в том же порядке, в котором вы их передали ... так что уникальным для "31214" является, например, "3124".
Запустите это с:
>> rebmu/args "e? AtsAuqA" 17308459
== true
Там также немного статистики и отладочной информации:
>> 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
Если требуется, чтобы была определена именованная / повторно используемая функция, вы можете создать «A-функцию», которая неявно принимает параметр с именем a a|
. (B-функция будет создана с b|
использованием параметра с именем A, затем с именем B). Так что это добавит еще пять символов ... скажем, вы вызываете функцию "F"
Fa|[e? AtsAugA]
"Ты смеешься! Они смеялись над Эйнштейном! Или подожди ... не так ли? Я ... не знаю".