当前位置: 首页 > news >正文

【F#学习】列表 List

F#中的列表list是不可变的一列数据。列表中的数据必须具有相同的数据类型。任何试图对列表进行修改的函数或者运算符,实际上都是构建了一个新的列表。

用如下方式来定义一个列表:

let empty = []
let singleValue = [5]
let threeValues = ["a"; "b"; "c"]

最普遍的向列表中添加元素的方式是通过cons运算符::

let twoToFour = [2; 3; 4]
let oneToFour = 1 :: twoToFour
// => [1; 2; 3; 4]

一个列表有一个head,剩下的内容都是tail,即:head为首个元素,tail为除开head的余下的列表。(这和 Haskell 是一致的)

List.head [1; 2; 3; 4; 5] // => 1
List.tail [1; 2; 3; 4; 5] // => [2; 3; 4; 5]let describe list =match list with| [] -> "Empty list"| head::tail -> sprintf "Non-empty list with head: %d" headdescribe []        // => "Empty list"
describe [1]       // => "Non-empty with head: 1"
describe [5; 7; 9] // => "Non-empty with head: 5"

在模式匹配中使用抛弃符_

let describe list =match list with| [] -> "Empty list"| [x] -> "List with one item"| [_; y] -> "List with two items (first item ignored)"| _ -> "List with many items (all items ignored)"describe []        // => "Empty list"
describe [1]       // => "List with one item"
describe [5; 7]     // => "List with two items (first item ignored)"
describe [5; 7; 9] // => "List with many items (all items ignored)"
http://www.hskmm.com/?act=detail&tid=14561

相关文章:

  • Trae与Gitee MCP深度集成:AI编程工具链迎来重大升级
  • 【2025-09-22】加班感悟
  • OpenAI Codex 使用 智谱 API
  • 嵌入式ARM架构学习9——IIC - 教程
  • Day04---数据类型及面试题详解
  • 记-一次H3C交换机版本升级
  • 客服系统中的定时任务设计与实现
  • 使用Go语言实现高效定时任务功能
  • JavaScript获取NHK的附件文件
  • 承兑 背书 贴现区别
  • 洛谷题单指南-进阶数论-P3811 【模板】模意义下的乘法逆元
  • Interlocked.Increment学习
  • 基于解析法的四轴SCARA机器人正逆运动学代码
  • .Net-IIS 文件上传安全漏洞问题
  • 【F#学习】记录 Record
  • 【光照】[高光反射specular]以UnityURP为例
  • 游戏性能优化与逆向分析技术
  • 使用 feign 调用时对微服务实例进行选择
  • EI目录今年第3次更新!55本中国期刊被收录,附完整版下载
  • 程序员的未来:从技术岗位到全栈思维的进化之路 - 实践
  • envoy和nginx的区别
  • 基于自适应差分进化算法的MATLAB实现
  • 【SPIE出版、主题宽泛、快速检索】2025年可持续发展与数字化转型国际学术会议(SDDT 2025)
  • langfuse使用的postgresql异机备份和恢复(docker)并进行langfuse版本升级
  • 国产化Excel处理组件Spire.XLS教程:Java在 Excel 表格中轻松添加下标
  • tips图解复杂数组、指针声明
  • 通过perl或awk实现剪切功能
  • java列队多种实现方式,
  • Ashampoo Music Studio 12.0.3 音频编辑处理
  • Gitee:本土化代码托管平台如何重塑中国开发者协作生态