Как список чисел можно объединить в строку? Похоже, здесь может помочь какая-то функция [Int] -> String
.
> concat . intersperse ", " . map show $ [13, 34, 234, 3]
"13, 34, 234, 3"
Итак, давайте добавим несколько скобок и "дугу" к этой строке.
import Data.List (intersperse)
arc :: [Int] -> String
arc nums = "arc(" ++ (concat . intersperse ", " . map show $ nums) ++ ")"
И мы получаем ответ.
> arc [13, 34, 234, 3]
"arc(13, 34, 234, 3)"
Если вам действительно нужна функция с подписью типа Int -> Int -> Int -> Int -> String
:
arc' :: Int -> Int -> Int -> Int -> String
arc' a1 a2 a3 a4 = "arc(" ++ (concat . intersperse ", " . map show $ [a1,a2,a3,a4]) ++ ")"
> arc' 13 34 234 3
"arc(13, 34, 234, 3)"