Pyth如何改善?[关闭]


24

Pyth正在开发中,这意味着一直在增加新功能。

我想让Pyth成为更好的语言,所以我想知道人们正在寻找什么功能。

这是您使Pyth更好的帖子创意的地方。

在您的回答中,请说明:

  • 您希望看到的内容已更改/添加。

  • 更改的示例用法。

如果我打算实施该建议,我会发表评论。

请检查您是否已建议要提出的想法。支持您想要实施的想法。


实施建议:


当我发布问题时,根据该元问题,这已成为话题,现在还不清楚。


1
为什么这是社区Wiki?
Geobits,2015年

4
更多的是讨论和建议收集。任何人都不应因建议Pyth功能而声名狼藉。同样,应该删除已实施的建议。这个相关问题也是社区Wiki。
丹尼斯

9
我不确定对此类问题的看法。我在这里看到它是有意义的,因为PPCG可能覆盖了Pyth的大部分(如果不是全部)用户群,但是我不确定我们是否应该将其用作问题跟踪器。我已经在元文章中添加了答案。
马丁·恩德

这不应该是meta吗?认真的人
亚历克·蒂尔

2
@AlecTeal“元编程难题和Code Golf Stack Exchange是该站点的一部分,用户在这里讨论Code Golf Stack Exchange的工作原理和政策,而不是讨论编程难题或Code Golf本身。” 元特别是关于这个社区的。它确实不属于meta。我链接的meta post目前正在讨论它是否完全属于PPCG。
马丁·恩德

Answers:


7

嵌套循环

如果要嵌套for循环,则当前必须浪费一个字节才能F<var><seq>在内部使用V<seq>,反之亦然。我想拥有与lambdas相同的东西,其中嵌套循环时用于循环的变量将发生变化。


这甚至可以扩展到诸如之类的其他内容L,例如可以C在第二次调用它时重新定义。
FryAmTheEggman


4

简化模块导入

到目前为止,每次使用$它时,它都类似于:

$from <module> import <function> as <pyth-function-with-same-arity>$
for example:
$from unicodedata import name as neg$

可能有一个新功能对此进行了总结,例如.$

.$"unicodedata""name""neg"
.$"unicodedata name neg"

或使用较新的语法,例如_M可能不容易/不可能做到的:

_$unicodedata name$

此外,可以为每个函数赋予一个函数一个单个字母宏的名称,以便这些调用可以更短(该_$选项除外)。


4

睡眠

在这里引起了麻烦,@ mbomb007建议将其作为对Pyth的改进。基本上,现在,为了睡眠给定的秒数,我需要执行以下操作:

Q$__import__('time').sleep(Q)$

这很烦人,而且很长。


您可以使用日期功能来模拟睡眠行为。f>.d1Q0例如睡觉Q几秒钟。
2015年

@Jakube并不总是有效。根据文档,在Unix上,它返回程序已运行了多长时间。当用户输入输入时,这是不好的。
kirbyfan64sos

这个怎么样比:J.d0f>-.d0JQ0。虽然时间很长...我同意,睡眠功能会很好。
雅库布2015年

4

更多lambda

这确实是FryAmTheEggman的想法,但我将其发布以将其发布。

有时,我发现使用两个不同的单参数lambda会缩短代码,而不必使用两个参数的lambda不会。

拥有会很好LM并且朋友每次使用时都会重新定义一个不同的功能;例如,此代码:

L*b2L*b3y5'5

可以编译为:

@memoized
def subsets(b):
 return times(b,2)
@memoized
def read_file(b):
 return times(b,3)
imp_print(subsets(5))
imp_print(read_file(5))

当然,可以更改功能的确切选择。


3

改进的多维数组

当前很难使用多维数组。例如,C代码A[B][C][D]将转换为@@@ABCDPyth。这样的东西@A[BCD)会更好(尽管这里不会再短一些)。同样也如此X; A[B][C][D] = E目前是X@@ABCDE什么时候XA[BCD)E


3

一些小想法

  • 绝对差,即abs(val1 - val2)。目前是.a-<val1><val2>
  • min/ max用于值。当前是hS,<val1><val2>/ eS,<val1><val2>或具有更多值的同一件事。(hS<seq>/ eS<seq>表示序列足够短。)

3

不是Pyth功能,但是...

模块化Pyth代码

这只会影响引擎盖下的Pyth。Pyth实现的某些部分非常混乱。许多全局变量和其他棘手的东西。

几天前,当我尝试使用另一个Python脚本中的Pyth实现的一些功能(例如执行一串Pyth命令)时,我真的很沮丧。

像下面这样的东西会很好:

from pyth import execute_pyth
print(execute_pyth(code='sQ', input='[1, 2, 3]'))

好吧,我想这只是对Pyth5的帮助。



1

独特元素

目前,Pyth没有捷径可以获取序列的唯一元素。您可以测试它是否唯一,但不能获得实际上唯一的项目。目前,最短的方法是

{.-Q{Q

6个字节!将其与K进行比较,在K中获取唯一元素是一个字节的操作:=x

也许.}会在这里工作?


您在考虑什么用例(除了挑战之一)?
isaacg 2015年

@isaacg我不太记得,但是我不得不先尝试获取列表的唯一元素,还必须使用其他内容(通常更长)。
kirbyfan64sos

我不是Pyth程序员,但是我经常在GolfScript / CJam中遇到这个问题:.&resp。_&出现在很多答案中。非常有用
林恩

1
这有什么不同{Q
isaacg 2015年

1
@isaacg排序
Ypnypn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.