Haskell’de yeniyim ve standart olarak giriş yapmak için bir fonksiyon (gcd) uygulamaya çalışıyorum; bu satırlar birbirinden ayrılmış ve her satırda az veya çok iki sayı. İşte benim girdi örneğidir:Haskell - Bir fonksiyonun birden çok satıra uygulanmaya çalışılması
3 10 4 1 100 288 240
Şu anda her iki numaralarının başlığın içine her satırı kesiliyor, ama ben bu tupleları ayırmak ve onlara bir işlev nasıl uygulanacağını bulmaktan sorun yaşıyorum.
import Data.List
main :: IO()
main = do
n <- readLn :: IO Int
content <- getContents
let
points = map (\[x, y] -> (x, y)). map (map (read::String->Int)). map words. lines $ content
ans = gcd (fst points :: Int) (snd points :: Int)
print ans
iki Bu yanıt için aramaya başlamak için iyi bir yer olarak herhangi bir bilgi çok takdir: İşte ben bugüne kadar ne var. Öğrenme Haskell öğreticisini okudum ve bu sorunla ilgili herhangi bir bilgi bulamadım.
saf fonksiyonunu 'f :: String yazmayı deneyin -> girişiniz bir çizgi alır ve hesaplar Int', önce gcd. İkinci adımda bu işlevi "ana" içindeki girdiye uygulayın. Ayrıca Prelude'den “uncurry :: (a -> b -> c) -> ((a, b) -> c)' ye bakınız. – sjakobi