Bir tamsayı listesi katlayacağız. Bunu yapma prosedürü aşağıdaki gibidir: Liste eşit uzunluktaysa, yeni listenin ’maddesinin eski listenin item maddesinin ve the ila eski listenin son maddesi. Mesela listemiz olsaydı
[1 2 3 4 5 6 7 8]
Öyle katlayacağız
[8 7 6 5]
+[1 2 3 4]
__________
[9 9 9 9]
Liste tuhaf bir uzunluktaysa, katlamak için önce ortadaki öğeyi kaldırır, eşitmiş gibi katlar ve ortadaki öğeyi sonuçlara ekleriz.
Mesela listemiz olsaydı
[1 2 3 4 5 6 7]
Öyle katlayacağız
[7 6 5]
+[1 2 3]
__________
[8 8 8]
++ [4]
__________
[8 8 8 4]
Görev
Girdi olarak tam sayıların listesini alan ve katlanmış olan listenin çıktılarını gösteren bir program veya işlev yazın.
Bu bir kod-golf sorusudur, bu yüzden cevaplar daha az byte daha iyi olacak şekilde byte olarak puanlanır.
Örnek uygulama
İşte Haskell'de f
katlama yapan bir işlevi tanımlayan bir uygulama .
f(a:b@(_:_))=a+last b:f(init b)
f x=x