फ़ंक्शन परिभाषा का प्रतिनिधित्व करने वाले स्ट्रिंग के इनपुट को देखते हुए, नई और रिक्त स्थान के साथ स्ट्रिंग को आउटपुट किया जाता है ताकि फ़ंक्शन के तर्क न्यूलाइन-अलग और संरेखित हों।
इनपुट स्ट्रिंग निम्नलिखित पैटर्न का पालन करेगी:
सबसे पहले, यह एक उपसर्ग के साथ शुरू होगा, जो हमेशा कम से कम एक वर्ण लंबा होता है और इसमें कोई भी वर्ण नहीं होता है
,()
।एक खुला कोष्ठक (
(
) तब तर्क सूची की शुरुआत को चिह्नित करेगा।शून्य या अधिक तर्कों की एक सूची इसके बाद आएगी। इन्हें स्ट्रिंग
", "
(एक अल्पविराम और फिर एक स्थान) द्वारा अलग किया जाता है । किसी भी तर्क में कोई भी वर्ण नहीं होगा,()
।एक करीबी कोष्ठक (
)
) तर्क सूची के अंत को चिह्नित करेगा।अंत में, एक उपसर्ग पाया जा सकता है, जो शून्य या अधिक वर्ण लंबा है और इसमें वर्ण हो सकते हैं
,()
।
इनपुट स्ट्रिंग में केवल मुद्रण योग्य ASCII शामिल होगा (जिसका अर्थ है कि इसमें एक नई पंक्ति कभी नहीं होगी)।
आउटपुट होना चाहिए:
उपसर्ग, कॉपी वर्बटीम, और खुले कोष्ठक।
तर्क सूची, इस बार अलग-अलग नहीं
", "
बल्कि अल्पविराम, न्यूलाइन, और जितने रिक्त स्थान हैं, प्रत्येक तर्क के पहले वर्ण को संरेखित करने के लिए आवश्यक है।नज़दीकी पैरेन्क और पोस्टफ़िक्स (यदि यह मौजूद है) शब्दशः।
चूंकि यह कोड-गोल्फ है , बाइट्स में सबसे छोटा कोड जीत जाएगा।
परीक्षण के मामले (प्रारूप: सिंगल-लाइन इनपुट जिसके बाद आउटपुट के बाद डबल न्यूलाइन है):
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>>" "
वास्तव में होशियार है ...