กำหนดอินพุตของสตริงที่แทนนิยามฟังก์ชันส่งออกสตริงพร้อมบรรทัดใหม่และช่องว่างที่แทรกเพื่อให้อาร์กิวเมนต์ของฟังก์ชันคั่นระหว่างบรรทัดใหม่และจัดตำแหน่ง
สตริงอินพุตจะเป็นไปตามรูปแบบต่อไปนี้:
ครั้งแรกก็จะเริ่มต้นด้วยคำนำหน้าซึ่งมักจะเป็นอย่างน้อยหนึ่งตัวยาวและไม่ได้มีการใด ๆ
,()ของตัวละครวงเล็บเปิด (
() จะทำเครื่องหมายจุดเริ่มต้นของรายการอาร์กิวเมนต์รายการข้อโต้แย้งที่เป็นศูนย์หรือมากกว่านั้นจะตามมา สิ่งเหล่านี้ถูกคั่นด้วยสตริง
", "(เครื่องหมายจุลภาคและช่องว่าง) ไม่มีข้อโต้แย้งใด ๆ,()จะมีของตัวละครวงเล็บปิด (
)) จะทำเครื่องหมายจุดสิ้นสุดของรายการอาร์กิวเมนต์สุดท้ายเป็น postfix อาจจะพบซึ่งเป็นศูนย์หรือมากกว่าตัวอักษรและ อาจ
,()ประกอบด้วยตัวอักษร
สตริงอินพุตจะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (ซึ่งหมายความว่าจะไม่มีการขึ้นบรรทัดใหม่)
ผลลัพธ์จะต้อง:
คำนำหน้าคัดลอกคำต่อคำและวงเล็บเปิด
รายการอาร์กิวเมนต์เวลานี้คั่นด้วยไม่ใช่
", "แต่ด้วยเครื่องหมายจุลภาคขึ้นบรรทัดใหม่และช่องว่างมากเท่าที่จำเป็นเพื่อจัดตำแหน่งอักขระแรกของแต่ละอาร์กิวเมนต์ในแนวตั้งคำสั่ง paren และ postfix แบบปิด (ถ้ามี) คำต่อคำ
เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
กรณีทดสอบ (รูปแบบ: อินพุตบรรทัดเดียวแล้วตามด้วยเอาต์พุตตามด้วยบรรทัดใหม่สองบรรทัด):
def foo(bar, baz, quux):
def foo(bar,
baz,
quux):
int main() {
int main() {
fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) {
fn f(a: i32,
b: f64,
c: String) -> (String, Vec<i32>) {
function g(h) {
function g(h) {
def abc(def, ghi, jkl, mno)
def abc(def,
ghi,
jkl,
mno)
x y z(x, y, z) x, y, z)
x y z(x,
y,
z) x, y, z)
a>>" "ฉลาดจริงๆ ...