Pyth находится в стадии разработки, а это означает, что новые функции добавляются все время.
Я хочу сделать Pyth лучшим языком, поэтому я хотел бы знать, какие функции ищут люди.
Это то место, где вы пишете идеи для того, чтобы сделать Pyth лучше.
В своем ответе, пожалуйста, укажите:
То, что вы хотели бы видеть, изменилось / добавилось.
Пример использования изменения.
Я прокомментирую, если я планирую реализовать предложение.
Пожалуйста, проверьте, если идея, которую вы хотите предложить, уже была предложена. Upvote идеи, которые вы хотели бы реализовать.
Реализованные предложения:
Eval строка в Pyth , as
.v
Применить пока как
.W
Вложенные циклы и другие лямбды (они используют тот же механизм внизу)
Свести вложенные списки как
.n
Это было по теме в соответствии с этим мета-вопросом, когда я отправил вопрос, это больше не ясно.
Ответы:
Вложенные циклы
Если вы хотите вложить
for
циклы, вам нужно потратить впустую байт для использованияF<var><seq>
внутри aV<seq>
или наоборот. Я хотел бы иметь то же самое, что и с лямбдами, где переменная, используемая для цикла, изменилась бы при вложении циклов.источник
L
, которые могут переопределить, скажем,C
во второй раз, когда он был вызван.Turt
Pyth эквивалент графика черепахи , согласно
import turtle
.источник
Упрощенный импорт модулей
До сих пор каждый раз, когда я использовал
$
это было что-то вроде:Может быть новая функция, которая суммирует это, например
.$
:Или используя более новый синтаксис, подобный тому,
_M
который может быть нелегко / невозможно сделать:Кроме того, одной функции с каждой арностью может быть присвоено одно буквенное имя макроса, чтобы эти вызовы могли быть короче (за исключением
_$
опции).источник
Спать
Это вызвало проблемы здесь , и @ mbomb007 предложил поставить его в качестве улучшения в Pyth . По сути, сейчас, чтобы поспать определенное количество секунд, мне нужно сделать что-то вроде:
Что раздражает и долго, черт возьми.
источник
f>.d1Q0
например спитQ
секунды.J.d0f>-.d0JQ0
. Хотя это довольно долго ... Я согласен, функция сна была бы хороша.Больше лямбд
Это действительно идея FryAmTheEggman , но я публикую ее, чтобы получить ее там.
Иногда я нахожу, что использование двух разных лямбд с одним аргументом приведет к сокращению кода, тогда как использование лямбды с двумя аргументами для одного не приведет.
Было бы неплохо иметь
L
,M
и друзья каждый раз переопределяют разные функции; например, этот код:может скомпилировать в:
Конечно, точный выбор функций может быть изменен.
источник
Улучшенные многомерные массивы
Использование многомерных массивов в настоящее время сделать довольно сложно. Например, код C
A[B][C][D]
будет переводиться@@@ABCD
в Pyth. Нечто подобное@A[BCD)
будет намного приятнее (хотя и не короче). То же самое относится и кX
;A[B][C][D] = E
в настоящее времяX@@ABCDE
, когда это может бытьXA[BCD)E
.источник
Некоторые второстепенные идеи
abs(val1 - val2)
. В настоящее время это.a-<val1><val2>
.min
/max
для значений. В настоящее время этоhS,<val1><val2>
/eS,<val1><val2>
или то же самое с большим количеством значений. (hS<seq>
/eS<seq>
для последовательностей достаточно коротка.)источник
Не особенность Pyth, но тем не менее ...
Модульный код Pyth
Это влияет только на Pyth под капотом. Некоторые части реализации Pyth довольно грязные. Множество глобальных переменных и других хакерских вещей.
Я действительно расстроился несколько дней назад, когда попытался использовать несколько функций реализации Pyth (например, выполнение строки команд Pyth) из другого скрипта Python.
Было бы неплохо что-то вроде следующего:
Ну, я думаю, это всего лишь вызов помощи для Pyth5.
источник
Уникальные элементы
У Pyth в настоящее время нет коротких путей получения уникальных элементов последовательности. Вы можете проверить, является ли он уникальным, но вы не можете получить предметы, которые на самом деле уникальны. В настоящее время самый короткий путь это :
6 байт! Сравните это с K, где получение уникальных элементов является операцией один байт:
=x
.Может быть,
.}
будет работать здесь?источник
.&
соотв._&
появляется во многих ответах. Это очень полезно.{Q
?