Rất nhiều người trên trang này sử dụng các ngôn ngữ bí truyền , và vì những ngôn ngữ này khác thường và khó hiểu, họ sẽ thường xuyên viết một lời giải thích theo một định dạng nhất định. Ví dụ: nếu mã là
abcdefghijklmnop
Và ngôn ngữ này sử dụng #
cho ý kiến, họ sẽ viết một lời giải thích như thế này:
a #Explanation of what 'a' does
bc #Bc
d #d
e #Explanation of e
fgh #foobar
ij #hello world
k #etc.
l #so on
mn #and
op #so forth
Tôi cũng thường xuyên làm điều này, nhưng mỗi lần tôi làm điều này, tôi cảm thấy việc tạo bố cục của văn bản thực sự đáng ghét và tốn thời gian. Vì vậy, tôi muốn bạn tạo một "Esolang-Comment-Template-Generator" cho tôi. Ví dụ: nếu chúng tôi bỏ qua các nhận xét, mã trước đó có mẫu này:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
Các thách thức:
Bạn phải viết một chương trình hoặc hàm lấy hai chuỗi làm đầu vào và xuất ra "Esolang-Comment-Template" này. Đầu vào đầu tiên sẽ là mã, nhưng với các thanh ( |
) được chèn vào nơi dòng mới đi. Đầu vào thứ hai là những gì chúng tôi sẽ sử dụng cho ý kiến. Vì vậy, ví dụ cuối cùng của chúng tôi sẽ có điều này cho đầu vào:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
Thật không may, điều này loại trừ các thanh là một phần của đầu vào mã, nhưng điều đó không sao. Bạn có thể giả định rằng đầu vào bình luận sẽ là một ký tự đơn. Để đơn giản, char bình luận sẽ không phải là một thanh. Đầu vào mã sẽ chỉ chứa ASCII có thể in và nó sẽ không chứa bất kỳ dòng mới nào.
Hy vọng rằng bạn có thể suy luận phải làm gì từ các bản thử nghiệm, nhưng tôi sẽ cố gắng làm rõ một số điều.
Bạn phải chia mã đầu vào thành "phần mã" trên mỗi thanh. Sau đó, mỗi phần của mã được xuất ra trên dòng riêng và được đệm trái với độ dài của tất cả các mã trước đó (không bao gồm các thanh). Sau đó, mỗi dòng được đệm đúng với đủ khoảng trắng sao cho hai ký tự cuối cùng trên mỗi dòng là "Một khoảng trắng bổ sung" + "Ký tự nhận xét".
Một dòng mới được cho phép.
Đây là một ví dụ khác. Đối với đầu vào
"Hello|World", "/"
Đầu tiên phần của mã là "Hello" và thứ hai là "thế giới". Vì vậy, nó sẽ cung cấp cho đầu ra:
Hello /
World /
Dưới đây là một số mẫu khác:
Input:
"a|b|c|d|e|f|g", ","
Output:
a ,
b ,
c ,
d ,
e ,
f ,
g ,
Input:
"abcdefg", ":"
Output:
abcdefg :
Input:
"4|8|15|16|23|42", "%"
Output:
4 %
8 %
15 %
16 %
23 %
42 %
Input:
"E|ac|h s|ecti|on is| one c|haracte|r longer| than the| last!", "!"
Output:
E !
ac !
h s !
ecti !
on is !
one c !
haracte !
r longer !
than the !
last! !
Input:
"This|Code|has||empty||sections", "@"
Output:
This @
Code @
has @
@
empty @
@
sections @
Quy tắc:
Bạn có thể lấy những đầu vào và đầu ra ở bất kỳ định dạng hợp lý. Ví dụ: đọc / ghi tệp, STDIN / STOUT, đối số hàm / giá trị trả về, v.v. Như thường lệ, đây là mã golf , vì vậy hãy cố gắng làm cho mã của bạn càng ngắn càng tốt và bạn sẽ thắng nếu bạn có thể nhận được giải pháp ngắn nhất trong ngôn ngữ của bạn! Tôi cũng sẽ chọn giải pháp ngắn nhất là người chiến thắng chung cuộc. Sơ hở tiêu chuẩn bị cấm.
|
nhân vật sẽ rất tuyệt, vì vậy bạn có thể tự giải thích
|
)?