Haskell

    [Haskell] 하스켈 기초반 2강 - 진위값

    자 이제부터 2강에서는 진위값에 대해 알아보는 시간을 가져보겠습니다. 1.동등 비교와 기타 비교들 앞 장에서는 다음 코드처럼 등호를 사용하여 변수와 함수를 정의하였습니다. r = 5 이 코드를 프로그래밍적으로 평가하자면 (스코프 안에서) r을 모두 5로 치환한다는 뜻이 됩니다. f x = x + 3 다음 코드에서는 f다음 숫자에 (f의 인자) 가 붙는 모든 자리에 숫자 3을 더한 것으로 치환됩니다. 그렇다면 수학에서 등호는 중요한 요소가 되지만 미묘하게 다른 방식으로도 쓰이게 되는데 그 예로 x + 3 = 5 이 문제에서 우리의 괸심사는 값 5를 x + 3 으로 표현하거나 x + 3을 5로 표현한다는 것이 아닌 등식 x + 3 = 5를 명제(proposition)로서 보고, 어떤 숫자에 x를 3으로 더하..

    [Haskell] 하스켈 기초반 1강 - 변수와 함수

    1강의 모든 예제는 하스켈 소스 파일에 입력하고 그 파일을 GHC로 불러와서 평가할 수 있다. 어떠한 예제든 간에 "Prelude>" 프롬프트는 소스에 포함하는 것이 아니다. 이 프롬프트에서는 GHCi 같은 환경에 코드를 입력할 수 있다는 뜻이며 그 외의 경우에는 코드를 파일에 넣고 그 파일을 실행해야 한다. 1. 변수 (Variable) 앞선 장에서 GHCi를 계산기로 활용했는데, 물론 이런 것은 짧은 계산에나 쓸모가 있고, 더 긴 계산을 하거나 하스켈 프로그램을 작성하기 위해서는 중간 결과들을 보관해줘야 한다. 중간 결과에 이름을 할당하면 그 결과를 보관할 수 있다. 이런 이름을 변수라고 부른다. 프로그램을 실행하면 각 변수는 그 변수가 가리키는 값으로 치환된다. Prelude> 3.141592653..

    [Haskell] 하스켈 이란? 함수형 프로그래밍

    하스켈 이란? 하스켈(Haskell)은 순수 함수형 프로그래밍 언어입니다. 함수형 프로그래밍 언어란 컴퓨터에게 해야하는 작업을 알려주는 것이 아닌(명령어 프로그래밍 언어), 어떤 작업인지를 알려주는 것이 바로 언어이다. 예를 들어 팩토리얼 1부터 N까지의 숫자를 모두 곱하는 값을 구하는 작업이라 알려주는 것처럼 이러한 작업들에 대해서 함수로 표현할 수 있다. 함수형 프로그래밍에서는 변수의 값을 변경할 수 없다. 그렇기 때문에, 함수가 하는 일은 주어진 작업에 한에서 계산하고 그 결과값을 반환해주는 일만 하면 된다. 절차형 프로그래밍 언어처럼 변수의 값을 변경할 수 없고 함수는 그 결과를 반환하는 일만 하면 되므로 주어진 매개변수가 동일할 시 동일한 결과를 보장하는 특징도 가진다(참조 투명성) 하스켈은 정..