Tôi đang lên kế hoạch viết một GolfScript cải tiến cho các chương trình thậm chí ngắn hơn có thể làm được nhiều việc hơn. Đây không phải là một thách thức; đó là một yêu cầu phản hồi và lời khuyên về những gì tôi nên làm. (xem thẻ)
Tôi không chắc đây có phải là Community Wiki không. Nếu bạn nghĩ vậy, chỉ cần gắn cờ cho người điều hành để chuyển đổi nó :)
Ngôn ngữ này sẽ rất giống với GolfScript. Nó vẫn được viết bằng Ruby. Tuy nhiên, nó có một vài điểm khác biệt:
- Sử dụng
`
như một dấu phân cách chuỗi, bởi vì đó là một ký tự không phổ biến, do đó sẽ ít thoát hơn. (Một nhân vật khác có thể thay thế chức năng của nó, như#
(nhiều hơn về sau)).\`
để thoát khỏi một backtick,\\
để thoát một dấu gạch chéo ngược và không có chuỗi thoát nào khác. Nếu bạn cần một dòng mới, chỉ cần dán một dòng mới theo nghĩa đen thực sự trong chuỗi. - Sử dụng Ruby
Rational
cho điểm nổi chính xác tùy ý, một trong những sai sót lớn của GolfScript. - Khả năng chuyển đổi các loại sang các loại khác. Ví dụ: bạn có thể chuyển đổi một khối thành một chuỗi.
- Biểu thức chính quy. Có lẽ được tạo ra với
"..."
. Các nhà khai thác sẽ được quá tải cho họ là tốt. Ví dụ ,"\W"~{`Invalid: non-word character`}{`OK`}if
. Sẽ tự động thực thi khi được đẩy từ một biến, như các khối. - Đối tượng tệp và ngày, để làm nhiều thứ không thể có trong GolfScript. Chúng sẽ không có nghĩa đen, nhưng sẽ có các chức năng để khởi tạo chúng, chẳng hạn như
`file.txt`fl
(tên của chức năng tạo tệp có thể thay đổi). - Có thể băm, nhưng tôi không chắc về điều đó. Tôi có nên
- Chức năng trợ giúp để làm nhiều hơn. Ví dụ,
`http://example.com`net
để truy cập mạng (một lần nữa,net
nhà điều hành có thể được đổi tên).rb
để thực thi một chuỗi dưới dạng mã Ruby. Sẽ có nhiều hơn nữa trong số này; đề nghị chào mừng. - Không có ý kiến, vì vậy mà
#
có thể được sử dụng cho một cái gì đó khác. Nếu bạn muốn một bình luận,`comment here`;
sẽ làm việc tốt. (Có lẽ#
có thể thay thế`
chức năng của) - Nó sẽ được viết lại hoàn toàn theo cách mà việc thêm chức năng sẽ dễ dàng hơn nhiều. Về cơ bản, mã sẽ dễ đọc hơn. (Bạn đã thấy nguồn GolfScript chưa?
:/
) - Nó sẽ có trên Github để có thể hợp tác làm việc. Tôi sẽ cấp phép cho nó theo MIT hoặc một cái gì đó.
- Không có dòng mới cuối cùng, vì vậy các mánh khóe gian lận hoạt động: P
Và tôi đang tách biệt chúng vì tôi nghĩ chúng là những thay đổi mạnh mẽ và hữu ích nhất (ngoại trừ có thể thêm điểm nổi):
- Nó sẽ có nhiều chức năng Ruby tích hợp. Ví dụ:
shuffle
(có thể viết tắt làsf
) (trước đây đã lấy 9 ký tự ),tr
(trước đó là 14 ký tự ),sample
(sm
, trước đó.,rand=
),flatten
(fl
, trước đó ???), v.v. - Nó sẽ được kết hợp, giống như Rebmu. Ví dụ, bây giờ bạn có thể làm
~:a0<{0a-}aIF
(sử dụng tên biến chữ) thay vì~:$0<{0$-}$if
(ghi đè hàm sắp xếp). (ví dụ từ đây ). Lưu ý rằng theo cách này, nó không phân biệt chữ hoa chữ thường và các số không được phép trong các tên biến. Theo ý kiến của tôi thì không sao vì đây là ngôn ngữ chơi gôn: P - Nó sẽ có gỡ lỗi. Tôi sẽ thêm khả năng cung cấp một cờ chỉ định các dấu phân cách mảng, dấu phân cách phần tử, v.v., đầu ra số (hợp lý, float hoặc int?), Từng bước một hướng dẫn, mã hóa và xuất ra từng mã thông báo thay vì chạy chương trình, Vân vân.
Vì vậy, câu hỏi của tôi là: có gì để cải thiện? Bạn nghĩ tôi nên thêm gì?
Bất kỳ ý tưởng khác cho điều này, trước khi tôi bắt đầu mã hóa nó?