cat
идет "мяу"
Мы все знакомы с концепцией cat
программы. Пользователь вводит что-то, оно возвращается пользователю. Легко. Но все cat
программы, которые я видел до сих пор, пропустили один факт: cat
«Мяу». Таким образом, ваша задача - написать программу, которая копирует все STDIN
в STDOUT
БЕЗ входных данных cat
, и в этом случае ваша программа должна выводить cat goes "Meow"
.
счет
Это код-гольф , так что ваш счет - это количество ваших байтов с несколькими модификаторами:
- Если ваша программа работает для любых дополнительных животных, кроме
cat
(напримерcow: cow goes "Moo"
), для каждого дополнительного животного: -10 - Если ваша программа не использует слово «кошка»: -15
- Если ваша программа отвечает
fox
«Что говорит лиса»: -25
Животные и звуки, которые идут вместе:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Все остальное в этом списке разрешено.
правила
- Применяются стандартные лазейки
- Вы не должны ничего писать
STDERR
- Вы можете использовать одинарные кавычки / без кавычек вместо двойных кавычек.
Leaderboard
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
## Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш результат равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
## Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать название языка ссылкой, которая затем будет отображаться во фрагменте списка лидеров:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Ответы:
Pyth, 231-255 = -24 байта
-24 * 10 лишних животных, -15 без строки "кошка"
Ссылка на код
ПСЕВДОКОД
Животные это знают:
источник
squalk
самTeaScript , 29 - 15 = 14 байт
Не использует строку
cat
.«Что говорит лиса» (длина = 21) больше, чем стоит бонус.
источник
CJam, 12 байтов
Программа имеет длину 27 байт и не использует слово
cat
( -15 байт ).Попробуйте встроить его в интерпретатор CJam .
Как это работает
источник
:)
APL (Dyalog) , 28 - 15 = 13 байт
За
goes "Meow"
входом следует, если вход эквивалентенtac
обратному.Попробуйте онлайн!
{
…}
Анонимная функция⌽'tac'
переверните строку (чтобы получить бонус -15, избегая персонажейcat
)⍵≡
Boolean для того, идентичен ли аргумент этому' goes "Meow"'/⍨
используйте это для фильтрации строки (т.е. возвращает пустую строку, если false)⍵,
добавить к аргументуисточник
Стек , 51 байт
источник
JavaScript,
45 - 15 =30/264 - 235 = 29Недостаток: вы должны написать имя животного с первой буквой в верхнем регистре, а остальные в нижнем регистре. Посмотрите ниже для другой версии, которая исправляет это. Эта версия избегает использования
a
кошки\x61
и включает код для 22 дополнительных животных из этого списка (все разрешенные животные, у которых было достаточно коротких слов, чтобы оно того стоило):(спасибо моему другу за помощь в утомительном задании составить этот список)
Ungolfed код:
Первая версия, 45 байт - 15 бонусов = 30
Да, я знаю. Я пошел с 30 до 29 со всей этой дополнительной работой. Это было весело!
Версия, которая позволяет вводить строчные буквы полностью, 294 байта - бонус 235 = 59
Я также попытался удалить корпус из массива данных,
.join().toLowerCase().split(',')
но вместо этого он занял 297 символов.источник
JavaScript,
81 - 20 - 15 = 46 байт,50 - 15 = 35 байтисточник
'c\at'
вместо'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
, Почему бы даже не сбросить предупреждение? Он уже возвращает результат в консоль.GNU sed, 37 - 15 = 22 байта
источник
MATLAB, 58 - 15 = 43 байта
Довольно просто, с бонусом за неиспользование
cat
в коде:Входные данные должны быть приведены в одинарные кавычки:
' '
.источник
Javascript, 117 байт
Я определенно не выиграл здесь, но я покрыл много дополнительных животных.
Javascript, 31 байт
источник
HALT , 71 - 15 = 56 байт
HALT - это язык, который я (@Downgoat) сделал для обработки строк, единственная проблема в том, что он немного длинный
отформатирован
источник
Python 3,
81705546 - 15 = 31 байтСпасибо Stewie Griffin за сохранение 15 байтов
Спасибо grc за сохранение 8 байтов.
Неиспользование строки
cat
дает -15 байтов.источник
JavaScript, 48 - 15 = 33 байта
Использование в
\x61
качестве замены дляa
инcat
.источник
Perl, 46 - 15 = 31
источник
Рубин,
494650 - 15 = 35 байтПолагаю, довольно просто. Не используя кошку.
Редактировать: Спасибо за @ w0lf за сохранение 3 байта!
источник
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15 - 20 = 529 байт
Я использую сжатый массив звуков животных в формате JSON. Это означает, что он работает со всеми 65 разрешенными животными, но мой сценарий огромен. Также работает с лисой и не имеет слова кошка.
источник
MATLAB, 46 байтов
По общему признанию тривиальный. Входные данные должны быть указаны в одинарных кавычках.
источник
ans = ..
это вообще не принято, если задача состоит в том, чтобы напечатать что-то. Я не уверен, что это консенсус, но он довольно распространенdisp
или что-то подобное.Луч ,
208206 - 15 = 191 байтНе конкурсная работа, но немного забавно. Он проверяет первые буквы ввода против
cat
. Если он получит несоответствие, он перейдет к стандартной программе cat. Если это соответствует, это добавитgoes "Meow"
источник
Java = 222 байта (сжатый)
Или я мог бы распаковать это.
Пакет = 52 байта
источник
Javascript: 48 символов, 48 байт
Тест
=>
"Собака"<=
"Собака"=>
"Кот"<=
"Кот мяукаяет"источник
s=="cat"
. Кроме того , строка кошки должно бытьcat goes "Meow"
, поэтому'function(s){return s=="cat"?'cat goes "Meow"':s}
вполне справедливо.s=>s=="cat"?s+' goes "Meow"':s
(30 байт)Haskell, 52-15 = 37 байт
Использование
\99
вместо c в «cat» для получения бонуса в 15 байт.источник
O ,
221614 байтов29 байт - 15
Это долго и можно играть в гольф больше
источник
𝔼𝕊𝕄𝕚𝕟 , 23 - 15 = 8 символов / 58 - 15 = 43 байта
Try it here (Firefox only).
Соотношение байтов к символам является реальным.
источник
Pyth, 82-95 = -13 байт
Я наконец-то дошел до преобразования моей новой функциональной записи Python 2 в Pyth. Это не бьет главного соперника. Оказывается, объединение большего количества животных в более крупный словарь сокращает счет быстрее, чем умно ассоциируя животных со звуками. Это поддерживает 8 животных в дополнение к кошке: носорог, окапи, лось, лев, тигр, барсук, бегемот и олень.
Попробуйте онлайн
источник
Japt,
25-15 = 10,24-15 = 9 байт.В первый раз попробую Japt:
ƒ
следует заменить непечатные символыU+0083
компилируются:Старое решение:
Попробуй здесь
источник
U+0083
заменаU+0192
илиƒ
когда вы запускаете этот фрагмент:"\u0083".charCodeAt()
Pyth, 26-15 (без "кота") = 11 байт
Моя первая в мире программа Pyth!
Попробуй здесь
Explaination
источник
C ++ 11, 316 - 11 * 10 - 15 = 191 байт
Хорошо компилируется с VisualStudio. GCC хочет, чтобы я
#include <string>
и#include <cstdio>
. Было бы короче, если бы я не пошел на бонусы, но я все еще надеюсь, что автор пересматривает бонусы. Я не могу думать о языке, где определениеcow -> moo
или так намного короче, чем 10 байтов. Мои3+key+value
байты стоимости для дополнительных животных и плоских22+17
байтов для определения структуры и так далее.Ungolfed
источник
using
нет ничего сложного, список инициализаторов есть.#include <map>
в#import<map>
течение -2 байт. Пробел перед этим<
может быть опущен и#import
выдает некоторые предупреждения, но принимается GCC и MSVCPyth, 31 - 15 = 16 байт
Вы можете попробовать это здесь
Explaination:
источник
C99
можно заменить на\C
. Это все еще+\C"at"
, так что вы можете сохранить бонус.C, 76 байтов
источник
PHP, 70-15 = 55 байт
(сохранено как ISO-8859-1)
Использует инвертированные неопределенные константы как строковые литералы:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Все объединено в одном эхо-утверждении, сокращенно
<?=
источник