私は、もっと多くのことができるより短いプログラムのために、改善されたGolfScriptを書くつもりです。これは挑戦ではありません。それは私がすべきことについてのフィードバックとヒントのリクエストです。(タグを参照)
これがコミュニティWikiかどうかはわかりません。もしそうだと思うなら、モデレーターにそれを変換するようにフラグを立ててください:)
この言語は、GolfScriptと非常によく似ています。まだRubyで書かれています。ただし、いくつかの違いがあります。
`
文字列の区切り文字として使用します。これは一般的な文字ではないため、エスケープの必要は少なくなります。(他のキャラクターは、その機能を置き換えることができます#
(詳細は後ほど))。\`
バックティック\\
をエスケープする、バックスラッシュをエスケープする、他のエスケープシーケンスはありません。改行が必要な場合は、文字列に実際のリテラル改行を挿入するだけです。Rational
GolfScriptの主な欠陥の1つである任意精度の浮動小数点にRubyを使用する。- 型を他の型に変換する機能。たとえば、ブロックを文字列に変換できます。
- 正規表現。おそらくで作成されました
"..."
。オペレーターもそれらに対して過負荷になります。たとえば、"\W"~{`Invalid: non-word character`}{`OK`}if
。ブロックなどの変数からプッシュされると、自動的に実行されます。 - ファイルおよび日付オブジェクト。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
以前???)、等 - レブムのようにドロドロになります。たとえば
~:a0<{0a-}aIF
、~:$0<{0$-}$if
(sort関数を上書きする)代わりに(文字変数名を使用して)できるようになりました。(ここからの例)。この方法では、大文字と小文字が区別されず、変数名に数字を使用できないことに注意してください。これはゴルフの言語なので、私の意見では大丈夫です:P - デバッグが行われます。配列区切り文字、要素区切り文字などを指定するフラグ、数値出力(有理数、浮動小数点数、または整数?)、命令を1つずつステップ実行し、プログラムを実行する代わりに各トークンをトークン化して出力する機能を追加します。等
だから、私の質問は次のとおりです。改善するものは何ですか?何を追加すべきだと思いますか?
コーディングを始める前に、これに関する他のアイデアはありますか?