gpt4 book ai didi

list - F#中的位置索引

转载 作者:行者123 更新时间:2023-12-04 17:07:43 25 4
gpt4 key购买 nike

给定一个列表,我想生成从第一个元素中选择的第二个元素列表。

例如:

let l1 = [1..4]
let n = [0; 2]
l1.[n]

应该返回 1的第一个和第三个元素 3l1
不幸的是,它返回一个错误:
error FS0001: This expression was expected to have type
int but here has type int list

现在,我想知道是否存在一种传递表示列表甚至更好的表达式的参数 n的方法?

最佳答案

F#不为这种索引提供语法支持。您可以要求像下面这样的数组的连续切片,但是它不能涵盖您的确切情况。

let a = [|1 .. 4|]
let b = a.[0..2]
// returns [|1; 2; 3|]

您可以轻松地为此编写一个函数:
let slice<'a> (indices: int list) (arr: 'a array) = 
[| for idx in indices do yield arr.[idx] |]

slice [0; 2] a
// returns [| 1; 3 |]

我将保留对越界访问的适当处理作为练习;)

关于list - F#中的位置索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576948/

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