我计划为甚至可以做更多事情的较短程序编写改进的GolfScript。这不是挑战。这是一个对我应该做的事情的反馈和提示的请求。(请参见标签)
我不确定这是否应该是Community Wiki。如果您是这样认为的,只需标记一个主持人即可将其转换:)
这种语言将与GolfScript非常相似。它仍然是用Ruby编写的。但是,它有一些区别:
- 使用
`
作为字符串分隔符,因为它是一个不常见的词,所以更少的逃脱是必要的。(另一个字符可以代替其功能,例如#
(稍后会详细介绍))。\`
逃避反引号,\\
逃避反斜杠,并且没有其他逃避序列。如果需要换行符,只需在字符串中插入实际的文字换行符即可。 - 使用Ruby的
Rational
任意精度浮点数,这是GolfScript的主要缺陷之一。 - 将类型转换为其他类型的能力。例如,您可以将块转换为字符串。
- 常用表达。可能是用创建的
"..."
。运营商也将为此而超负荷。例如,"\W"~{`Invalid: non-word character`}{`OK`}if
。从变量(如块)中推送时将自动执行。 - File和Date对象,以执行GolfScript中无法完成的更多工作。这些将没有文字,但是将具有用于初始化它们的功能,例如
`file.txt`fl
(文件制作功能的名称可能会更改)。 - 可能是哈希,但是我不确定是哪一个。我是不是该?
- 辅助功能可以做更多的事情。例如,
`http://example.com`net
对于网络访问(同样,net
可以重命名运营商)。rb
将字符串作为Ruby代码执行。这些将会更多。建议欢迎。 - 没有评论,因此
#
可以用于其他用途。如果您想发表评论,`comment here`;
将可以正常工作。(也许#
可以代替`
的功能) - 它将被完全重写,从而可以轻松添加功能。基本上,代码将更具可读性。(您是否看到过GolfScript源代码?
:/
) - 它将在Github上,因此可以进行协作工作。我将在麻省理工学院(MIT)或其他方面获得许可。
- 没有最后的换行符,所以狡猾的奎因工作:P
我将它们区分开,因为我认为它们是最激烈,最有用的更改(可能添加浮点除外):
- 它将内置许多Ruby函数。例如,
shuffle
(可以缩写为sf
)(以前为9个字符),tr
(以前为14个字符),sample
(sm
以前为.,rand=
),flatten
(fl
以前为???)等。 - 它会像Rebmu一样被静音。例如,现在您可以
~:a0<{0a-}aIF
(使用字母变量名称)代替~:$0<{0$-}$if
(覆盖排序功能)。(此处的示例)。请注意,这种方式不区分大小写,并且变量名中不允许使用数字。我认为这是可以的,因为它是一种高尔夫语言:P - 它将进行调试。我将添加以下功能:提供一个标志,用于指定数组定界符,元素定界符等,数字输出(有理数,浮点数或int?),一次执行一个指令,标记化并输出每个标记,而不是运行程序,等等
所以,我的问题是:有什么要改进的?您认为我应该补充什么?
在开始编码之前还有其他想法吗?