代码之家  ›  专栏  ›  技术社区  ›  Mike Hildner

当我调用一个用逗号分隔参数的函数时会发生什么?

f#
  •  3
  • Mike Hildner  · 技术社区  · 14 年前

    一个新来的有f_的新手似乎不能让我的谷歌为这个问题工作。

    我有这个功能

    namespace RiskMeasurement
    module Basics01 =
        let AvailableCapital (nominalAssetValue: float) (provisions: float) (liabilities: float) =
            nominalAssetValue - provisions - liabilities
    

    打电话

    namespace RiskMeasurement
    module Main =
        [<EntryPoint>]
        let main args =
            let floats = Array.map float args
            let availableCapital = Basics01.AvailableCapital floats.[0] floats.[1] floats.[2]
            printfn "Available Capital: %f" availableCapital
    
            let availableCapital = Basics01.AvailableCapital floats.[0], floats.[1], floats.[2]
    
            // Return 0 to indicate success.
            0
    

    当用空格分隔的ARG调用函数时,AsvabeCabPalt是一个浮点。这是有道理的。当用逗号分隔参数调用时,可用资本为(float->float->float)*float*float。我一点也不明白。我在做什么?

    3 回复  |  直到 8 年前
        1
  •  2
  •   sepp2k    14 年前
    Basics01.AvailableCapital floats.[0], floats.[1], floats.[2]
    

    Basics01.AvailableCapital floats.[0] floats.[1] floats.[2]

        2
  •  3
  •   Josh Lee ZZ Coder    14 年前

    let availableCapital = (Basics01.AvailableCapital floats.[0]), floats.[1], floats.[2]
    

    availableCapital

    let availableCapital = Basics01.AvailableCapital (floats.[0], floats.[1], floats.[2])
    

        3
  •  2
  •   Brian    14 年前