gpt4 book ai didi

F# 类型推断

转载 作者:行者123 更新时间:2023-12-04 06:58:13 26 4
gpt4 key购买 nike

我正在使用 fsharp 类型推断,我正在尝试了解它们的工作原理。为什么是这样

List.filter List.head

是类型 bool list list -> bool list list ?

最佳答案

List.filter具有类型(只需在 FSI 中输入 List.filter;;):

> List.filter;;
val it : (('a -> bool) -> 'a list -> 'a list)

所以它需要一个 'a -> bool并导致 'a list -> 'a list
现在你喂它
> List.head;;
val it : ('b list -> 'b)

(这是另一个 'a 真的所以我重命名了它)现在你有:
'a -> bool ~ 'b list -> 'b

你可以统一这一点,看看:
  • 'b ~ bool (来自 -> 的右侧)
  • 'a ~ 'b list ~ bool list (从左侧)

  • 但这一切结合在一起,你就会得到 F# 的类型推断给你的答案:
    'a list -> 'a list 
    ~ ('b list) list -> ('b list) list
    ~ (bool list) list -> (bool list) list
    ~ bool list list -> bool list list

    关于F# 类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835695/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com