Pyth está em desenvolvimento contínuo, o que significa que novos recursos estão sendo adicionados o tempo todo.
Eu quero fazer do Pyth um idioma melhor, então eu gostaria de saber quais recursos as pessoas estão procurando.
Este é o lugar das idéias que você tem para melhorar o Pyth.
Na sua resposta, indique:
O que você gostaria de ver alterado / adicionado.
Um exemplo de uso da mudança.
Vou comentar se estou planejando implementar a sugestão.
Verifique se a ideia que você deseja sugerir já foi sugerida. Ideias positivas que você gostaria de implementar.
Sugestões implementadas:
Eval string em Pyth , como
.v
Aplicar enquanto como
.W
Loops aninhados e mais lambdas (eles usam o mesmo mecanismo abaixo)
Achatar listas aninhadas como
.n
Isso estava no tópico de acordo com esta meta questão quando eu postei a pergunta, não está mais claro.
Respostas:
Loops aninhados
Se você deseja aninhar
for
loops, atualmente precisa desperdiçar um byte para usá-loF<var><seq>
dentro deV<seq>
ou vice-versa. Adoraria ter o mesmo que com lambdas, onde a variável usada para o loop mudaria ao aninhar loops.fonte
L
, como redefinir, digamos,C
a segunda vez que foi chamado.Turt
Pyth equivalente a gráficos de tartarugas , conforme
import turtle
.fonte
Importação mais fácil de módulos
Até agora, toda vez que eu uso
$
, tem sido algo como:Pode haver uma nova função que resuma isso, por exemplo
.$
:Ou usando a sintaxe mais recente, como a
_M
que pode não ser fácil / possível:Além disso, uma função com cada aridade pode receber um nome de macro com uma única letra, para que essas chamadas sejam mais curtas (exceto a
_$
opção).fonte
adormecido
Isso causou problemas aqui , e o @ mbomb007 sugeriu colocá-lo como uma melhoria para o Pyth . Basicamente, agora, para dormir por um determinado número de segundos, preciso fazer algo como:
O que é irritante e longo como o diabo.
fonte
f>.d1Q0
por exemplo dormeQ
segundos.J.d0f>-.d0JQ0
. É bastante longo ... Eu concordo, uma função de dormir seria legal.Mais lambdas
Esta é realmente a ideia de FryAmTheEggman , mas estou publicando para divulgá -la.
Às vezes, acho que o uso de duas lambdas de um argumento diferentes reduziria o código, enquanto o uso de uma lambda de dois argumentos não o faria.
Seria bom ter
L
,M
e os amigos redefinem uma função diferente toda vez que são usados; por exemplo, este código:pode compilar para:
A escolha exata das funções pode ser alterada, é claro.
fonte
Matrizes multidimensionais aprimoradas
Atualmente, é difícil usar matrizes multidimensionais. Por exemplo, o código C
A[B][C][D]
seria traduzido para@@@ABCD
em Pyth. Algo como@A[BCD)
seria muito melhor (embora não seja mais curto aqui). O mesmo também vale paraX
;A[B][C][D] = E
é atualmenteX@@ABCDE
, quando poderia serXA[BCD)E
.fonte
Algumas idéias menores
abs(val1 - val2)
. Atualmente é.a-<val1><val2>
.min
/max
para valores. Atualmente, éhS,<val1><val2>
/eS,<val1><val2>
ou a mesma coisa com mais valores. (hS<seq>
/eS<seq>
para seqüências é suficientemente curto.)fonte
Não é um recurso Pyth, mas mesmo assim ...
Modularizar o código Pyth
Isso afeta apenas Pyth sob o capô. Algumas partes da implementação do Pyth são bastante confusas. Muitas variáveis globais e outras coisas hacky.
Fiquei realmente frustrado alguns dias atrás, quando tentei usar algumas funções da implementação Pyth (como executar uma sequência de comandos Pyth) de outro script Python.
Algo como o seguinte seria bom:
Bem, acho que isso é apenas um pedido de ajuda para Pyth5.
fonte
Elementos únicos
Atualmente, Pyth não tem uma maneira curta de obter elementos exclusivos de uma sequência. Você pode testar se é exclusivo, mas não consegue os itens realmente únicos. Atualmente, o caminho mais curto é :
6 bytes! Compare isso com K, onde a obtenção de elementos únicos que é uma operação de um byte:
=x
.Talvez
.}
funcione aqui?fonte
.&
resp._&
aparece em muitas respostas. É muito útil.{Q
?