F#|> (Pipeforward)'阻止以下是未完成'错误

时间:2013-07-19 21:15:58

标签: f# excel-dna

有人请帮助我理解为什么下面的代码会给我错误'阻止以后让未完成。期待一个表达'? x的值应该是一个字符串列表,这就是F#看到它的方式。那么为什么x不能成为字符串列表以供以后在函数中使用?

let fxProper (str : string) (values : obj[,]) =
    let x = 
        values
        |> Seq.cast<obj> 
        |> Seq.filter (fun x -> not (x :? ExcelEmpty)) 
        |> Seq.map string 
        |> Seq.toList

2 个答案:

答案 0 :(得分:4)

您需要对刚刚设置的x值执行某些操作

let fxProper (str : string) (values : obj[,]) =
    let x = 
        values
        |> Seq.cast<obj> 
        |> Seq.filter (fun x -> not (x :? ExcelEmpty)) 
        |> Seq.map string 
        |> Seq.toList
    x

应该有用。

这个

  let fxProper (str : string) (values : obj[,]) =
            values
            |> Seq.cast<obj> 
            |> Seq.filter (fun x -> not (x :? ExcelEmpty)) 
            |> Seq.map string 
            |> Seq.toList

应该也可以。

答案 1 :(得分:1)

你做得对。 x的let绑定工作正常。该错误告诉您,您的函数fxProper当前没有返回任何内容。如果你的意图是返回x,那么你需要在fxProper的末尾添加它,如下所示,否则只需添加一个虚拟返回值,直到你完成函数编写。

let fxProper (str : string) (values : obj[,]) =
    let x = 
        values
        |> Seq.cast<obj> 
        |> Seq.filter (fun x -> not (x :? ExcelEmpty)) 
        |> Seq.map string 
        |> Seq.toList
    x //this returns the value of x from fxProper, this could also just the default value of whatever you actually want to return here