Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 使我的函数返回错误消息_List_If Statement_F# - Fatal编程技术网

List 使我的函数返回错误消息

List 使我的函数返回错误消息,list,if-statement,f#,List,If Statement,F#,我试图让我的函数在发现一个空的子列表时返回“invalid Input” let func (lst: 'a list list) = if List.contains [] lst then printfn "%s" "Invalid Input" else List.map List.head lst 这是我尝试过的,但这当然不起作用,因为我的if/else返回两种不同的类型 我认为你应该提出一个例外。顺便说一下,您可能需要使用: 您还可以将

我试图让我的函数在发现一个空的子列表时返回“invalid Input”

let func (lst: 'a list list) =
    if List.contains [] lst then
        printfn "%s" "Invalid Input"
    else
        List.map List.head lst

这是我尝试过的,但这当然不起作用,因为我的if/else返回两种不同的类型

我认为你应该提出一个例外。顺便说一下,您可能需要使用:

您还可以将
raise
替换为
invalidArg“lst”

了解更多:或


然后您可以捕获异常以检索异常。

您可以使用
结果
类型:

let func lst =
    if List.contains [] lst
    then Error "Invalid input"
    else Ok (List.map List.head lst)

回答得好!(有一些关于面向铁路的编程的信息)我能设法避免包含所有错误消息,而只包含“无效输入”或“输入为空”吗?@wardz也许dumetrulo的答案更适合你的情况。如果需要异常消息,请使用
消息
属性。
let func (lst: 'a list list) = 
   if List.isEmpty lst then invalidArg "lst" "Input is empty"
   else List.map List.head lst 
let func lst =
    if List.contains [] lst
    then Error "Invalid input"
    else Ok (List.map List.head lst)