我是Haskell的新手,我嘗試應用一個函數(gcd)輸入標準輸入,它是行分隔的,每行包含不少於或多於兩個數字。這是我輸入的例子:Haskell - 嘗試將函數應用於多個數字的行
3 10 4 1 100 288 240
我目前分手每一行到這兩個數字的元組,但我有麻煩找出如何分離這些元組和應用功能給他們。以下是我迄今爲止:
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
兩個一個好地方,開始尋找這個答案的任何信息,將不勝感激。我已閱讀了學習Haskell教程,並沒有找到有關此特定問題的任何信息。
試着寫一個純函數'˚F::字符串 - > Int',這需要你的線路輸入和計算gcd第一。在第二步中將該函數應用於'main'內的輸入。還可以看看Prelude的'uncurry ::(a - > b - > c) - >((a,b) - > c)'。 – sjakobi 2015-03-30 23:36:19