gpt4 book ai didi

F# - 如何从 n-1 元组和 1 创建 n 元组

转载 作者:行者123 更新时间:2023-12-02 08:32:30 27 4
gpt4 key购买 nike

假设我有一个元组:

let t = (1,'a')

我想创建一个三元组/三元组:

let createTriple (a,b) c =
(a, b, c)

F# 中是否有一种语法可以让我从 n-1 元组和奇异值创建 n 元组?

let createNTuple (a..z) q =
(a..z, q)

最佳答案

你问的是关于跳出类型系统的问题,所以确保你可以通过反射来做到这一点,但不是以类型安全的方式。

let createNTuple tuple x =
let fields = [|yield! FSharpValue.GetTupleFields(tuple); yield box x|]
let fieldsTy = [|yield! FSharpType.GetTupleElements(tuple.GetType()); yield x.GetType()|]
let ty = FSharpType.MakeTupleType(fieldsTy)
FSharpValue.MakeTuple(fields, ty) |> unbox

let (a: int, b: char, c: string) = createNTuple (1, 'a') "foo"

关于F# - 如何从 n-1 元组和 1 创建 n 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128140/

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