저는 하스켈을 배우고 있습니다. "모든 것이 가치"라는 순수 함수형 언어이기 때문에 "모든 것이 가치"이기 때문에 원하는 모든 것을 계산할 수 있다고 믿습니다!하스켈 - 프로그램이 응답하지 않습니다.
그러나 사용자 입력 n이 주어지면 조건 a^n + b^n == c^n을 만족하는 가장 작은 정수형 튜플 (a, b, c)을 찾으려고 시도하는 다음 프로그램을 고려하면 정수 :
func :: Integer -> (Integer, Integer, Integer)
func n = head $ filter (\(a, b, c) -> a^n + b^n == c^n) listOfTuples
listOfTuplesWith :: Integer -> [(Integer, Integer, Integer)]
listOfTuplesWith 1 = [(1, 1, 1)]
listOfTuplesWith x = [(a, b, x) | a <- [1 .. x - 1], b <- [1 .. x - 1]] ++
[(a, x, b) | a <- [1 .. x - 1], b <- [1 .. x]] ++
[(x, a, b) | a <- [1 .. x], b <- [1 .. x]]
listOfTuples = concatMap listOfTuplesWith [1 .. ]
main = do
line <- getLine
print $ func $ read line
I 키 2는 프로그램이 기대 값을 출력한다 (3, 4, 5), 단, I 키 (3)에서, 프로그램은 영원히 정지 같다. 내 프로그램에 무슨 문제가 있니?
[페르마의 마지막 정리] (http://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem) – dewaffled