首页 > 解决方案 > 删除 F# 中嵌套列表中的第一个元素?

问题描述

我想从嵌套列表中删除第一个元素。我刚刚了解了 List.map 和 List.filter,但我无法让它工作。

所以 [ [1;2;3]; [4;5;6] ] 变为 [ [2;3]; [5;6]

谁能提示我正确的方向?

版本 1:

let remove l =

for i in l do
    printfn "i %A" i
    for j in i do 
        printfn "%A" j
        List.map (fun x -> x) j


printfn "done"


printfn "%A" (remove ([[1;2;3]; [4;5;6]]))

版本 2:

let remove1 l = 

  for i in l do
     printfn "i %A" i
     List.map (fun x -> x.[2..]) j


printfn "%A" (remove1 ([[1;2;3]; [4;5;6]]))

我知道他们俩都错了,我只是想表明我至少在尝试,而不仅仅是要求快速回答。

问候

标签: f#

解决方案


所以你有一个列表列表,并且想要删除每个子列表的第一个元素。如果我们假设所有子列表至少有 1 个元素,我们可以List.tail在每个子列表上使用来获取它的尾部(即没有第一个元素的列表),然后将其用作映射到外部列表的映射器函数List.map

let removeFirst = List.map List.tail

是的,真的就是这么简单!


推荐阅读