ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수형 언어 F# Hello world
    F# 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
Designed by Tistory.