2014-10-15 4 views
0

나는 F # 및 C 번호와 실제 세계 기능적 프로그래밍이라는 책을 읽고이함수를 실행하는 방법은 무엇입니까?

open System 

let readInput() =  
    let s = Console.ReadLine()  
    let (succ, num) = Int32.TryParse(s) 
    if (succ) then 
     Some(num) 
    else   
     None 

let readAndAdd1() =  
    match (readInput()) with 
    | None -> None  
    | Some(n) -> 
     match (readInput()) with  
     | None -> None  
     | Some(m) ->   
      Some(n + m) 

printfn "Result - %A" readAndAdd1 

그것은 두 개의 숫자를 요청하고 함께 추가해야 되면 예를 들어이있다. 그러나 나는 그것을 작동시키지 않는 것 같습니다. LinqPad에서 이것을 시도했을 때 readInput()을 입력 할 때 오류가 발생했습니다. 내가 readInput이라고 타이프했을 때 첫 번째 값은 물었지만 두 번째 값은 요구하지 않았습니다. F # Interactive에서는 작동하지만 인쇄됩니다. Result - <fun:[email protected]>

이 방법을 어떻게 실행할 수 있습니까?

답변

3

는 F #에서

printfn "Result - %A" readAndAdd1 

을 시도하고 상호 작용하는 당신은 식별자 기능입니다 'readAndAdd1'와 printfn 제공합니다. F # 대화 형 두 개의 입력을 기다리는 및 이후에 결과를 출력합니다이 경우

printfn "Result - %A" (readAndAdd1()) 

: 당신은 함수 호출의 결과를 인쇄해야하는 경우 는이 같은이 함수를 호출해야합니다. F # 대화 형 출력 :

> printfn "Result - %A" (readAndAdd1());; 
2 
3 
Result - Some 5 
val it : unit =() 
> 
관련 문제