-
함수형 언어 F# Hello worldF# 2015. 12. 4. 01:06
천리길도 한걸음 부터.
본 강좌는 함수형 언어를 다루는 만큼
절차지향 또는 객체지향 언어에 대한
기본적인 지식을 가지고 있는 독자를
대상으로 한다.
첫 시간으로 F# Hello World 를
작성해 보도록 하자.
open System
[<EntryPoint>]
let main argv =
printfn "Hello world!"
Console.ReadLine() |> ignore
0 // return an integer exit code
Visual Studio 로 신규 프로젝트를
생성 한 경우, 기본적인 코드 골격이
어느정도 작성되어 있어
조금의 수정만 거치면 바로 hello world를
완성 할 수 있다.
그럼, 코드를 분석해 한줄한줄 보도록
분석해 보도록 하자.
첫줄의 open 키워드는 자주 사용되는
namespace 를 선언하여 이후부터는 생략하여
사용 할 수 있게 해주는 역할을 한다.
즉, C++의 using namespace 나
C#의 import 키워드와 비슷한 역할을 한다.
애플리케이션의 진입점을 명시한다.
진입점을 명시하지 않은경우는 마지막으로
컴파일 할 파일의 가장위에 있는 let 으로
바인딩된 함수가 진입점으로 사용된다.
(F# 언어는 소스의 컴파일 순서가 존재하며,
Visual Studio 나 커맨드라인 컴파일시
순서를 조정 할 수 있다.)
수학에서의 함수와 마찬가지로,
입력값 -> 처리(연산) -> 출력값의 개념으로
접근하며, 진입점 함수의 정의는 let 키워드로
하게 되며, string array 파라미터를 입력 받고
int 를 출력하는 구조로 되어있어야 한다.
printfn "Hello world!"
헬로 월드 문자열을 출력한다.
Console.ReadLine() |> ignore
실행 후 결과값을 확인해야 하는데,
창이 바로 닫히게 되므로 이를
방지하기 위해 한줄 입력을 받는다.
|> 는 pipe-forward 연산자라 한다.
다음 함수의 입력으로 출력값을 전달하는
역할을 한다.
(반대의 역할을 하는 <| pipe-backward
연산자도 존재한다.)
해당 연산자의 상세한 정의에 대한
부분은 차차 설명하도록 하겠다.
이번시간에는 출력값을 전달하는 정도로
이해하는것만으로도 충분하다.
0
return 명령을 명시해 주지 않아도
마지막 값을 리턴값으로 사용하게 된다.
이번 강좌에서는 아주 기본적인
F# 프로그래밍 방법에 대해 살펴보았다.
다음 강좌에서는 간단한 함수를 정의하는
방법에 대해 살펴보도록 하겠다.
'F#' 카테고리의 다른 글
F# 타이머 예제 (0) 2016.03.11 F# Async Task 예제 (0) 2016.03.11 F# 에서 쓰레드 사용하기 예제 (0) 2016.03.11 웹 데이터 요청하고 xpath로 데이터 추출하기 (1) 2015.12.26 60초안에 살펴보는 F# 문법 (0) 2015.12.05