稀土掘金 稀土掘金
    • 首页
    • AI Coding
    • 数据标注 NEW
    • 沸点
    • 课程
    • 直播
    • 活动
    • APP
      插件
      • 搜索历史 清空
        • 写文章
        • 发沸点
        • 写笔记
        • 写代码
        • 草稿箱
        创作灵感 查看更多
  • 后端
  • 前端
  • Android
  • iOS
  • 人工智能
  • 开发工具
  • 代码人生
  • 阅读
  • 3-30.【函数式编程】你如何用 Monad / Functor 思想重构异步网络请求链,提高可组合性和可测试性?
    1️⃣ 问题背景 传统异步网络请求链常见写法: 问题: 回调地狱,嵌套多层 不可组合,无法在不同请求间自由组合 副作用分散,难以测试 2️⃣ Functor / Monad 思想 Functor (m
    • 项阿丑
    • 9天前
    • 11
    • 点赞
    • 评论
    Swift
  • 3-29.【函数式编程】请解释为什么数组可以作为 Monad,并实现一个示例函数组合多个数组操作。
    1️⃣ 为什么数组可以作为 Monad 在函数式编程中,Monad 的核心特征是: 容器类型,封装值 bind / flatMap:接受一个返回同类型容器的函数,并将嵌套容器“平铺” 遵循 Monad
    • 项阿丑
    • 9天前
    • 4
    • 点赞
    • 评论
    Swift
  • 3-28.【函数式编程】设计一个泛型函数,将任意 Monad 类型组合多个操作,要求类型安全并保持错误传播。
    1️⃣ 定义 Monad 协议 2️⃣ 泛型函数:链式组合 设计一个函数: 接收一个初始 Monad 值 接收一个 操作数组,每个操作是 (A) -> Monad<A> 链式调用 flatMap,遇到
    • 项阿丑
    • 9天前
    • 7
    • 点赞
    • 评论
    Swift
  • 3-27.【函数式编程】讨论 Combine 的 Publisher 如何体现 Functor / Monad 特性。
    1️⃣ Functor 特性在 Publisher 中的体现 Functor 核心:能够把函数映射到容器/上下文中的值,同时保持结构不变。 在 Combine 中: Publisher 可以看作一个
    • 项阿丑
    • 9天前
    • 38
    • 点赞
    • 评论
    Swift
  • 3-26.【函数式编程】请实现一个函数,将数组 Optional<Int> 链式组合,并在遇到 nil 时返回 nil,体现 Monad 特性。
    1️⃣ 示例需求 输入:[Optional<Int>] 操作:对每个非 nil 值进行一系列转换 遇到 nil → 链式短路,返回 nil 体现 Monad 特性(flatMap 平铺容器,避免嵌套
    • 项阿丑
    • 9天前
    • 7
    • 点赞
    • 评论
    Swift
  • 3-20.【函数式编程】请实现一个链式调用多个可能失败的函数,并用 flatMap / map 处理错误。
    1️⃣ 定义错误类型和函数 parseInt 返回 Result<Int, ParseError> addTen 和 double 返回 Result<Int, AppError> 我们将演示 链式调
    • 项阿丑
    • 9天前
    • 9
    • 点赞
    • 评论
    Swift
  • 3-25.【函数式编程】Monad 与 Functor 的区别?
    Monad 与 Functor 的区别?Optional / Result 是如何体现 Monad 的 bind (flatMap) 语义? 1️⃣ Functor vs Monad 特性 Funct
    • 项阿丑
    • 9天前
    • 7
    • 点赞
    • 评论
    Swift
  • 3-24.【函数式编程】什么是 Functor?Result 和 Optional 如何实现 Functor 的 map 行为?
    1️⃣ 什么是 Functor 在 函数式编程中,Functor 是一个可以 映射(map)函数到其内部值的容器类型。 定义: Functor 是一个容器类型 F<A>(如数组、Optional、Re
    • 项阿丑
    • 9天前
    • 4
    • 点赞
    • 评论
    Swift
  • 3-23.【函数式编程】什么是 Monoid,并给出数组或字符串的 Monoid 实例。
    1️⃣ 什么是 Monoid 在 函数式编程和抽象代数中,Monoid 是一个具有以下特征的代数结构: 封闭性(Closure) 对类型 T 的任意两个值进行操作,仍然返回同类型值 Swift 示例:
    • 项阿丑
    • 9天前
    • 6
    • 点赞
    • 评论
    Swift
  • 3-22.【函数式编程】设计一个函数式流水线,处理一系列操作,遇到错误立即返回,并保证副作用可控。
    设计一个 函数式流水线,实现以下目标: 处理一系列数据操作 遇到错误立即返回 保证副作用(打印、日志、网络等)集中可控 使用 Swift 的 Result 类型 + 纯函数 1️⃣ 定义错误类型和函数
    • 项阿丑
    • 9天前
    • 13
    • 点赞
    • 评论
    Swift
  • 3-21.【函数式编程】比较 try/catch 与 Result<T, Error> 在函数式设计中的差异与使用场景。
    1️⃣ 核心区别 特性 try/catch Result<T, Error> 错误处理方式 抛出异常,由调用方捕获 错误作为值封装在枚举中,沿函数链传递 函数签名 通过 throws 声明 返回类型
    • 项阿丑
    • 9天前
    • 10
    • 点赞
    • 评论
    Swift
  • 3-19.【函数式编程】如何用 Result 类型实现函数式错误处理?
    1️⃣ Result 类型简介 Swift 的 Result 是一个泛型枚举: success 包含成功值 failure 包含错误 可用 map、flatMap、mapError 等方法进行组合和转
    • 项阿丑
    • 9天前
    • 9
    • 点赞
    • 评论
    Swift
  • 3-18.【函数式编程】讨论 Point-Free 风格在函数复用和可测试性上的优势。
    1️⃣ 函数复用优势 (1) 小函数可组合 Point-Free 风格强调将函数拆解成小、纯、单一功能的函数,然后通过函数组合构建复杂逻辑。 示例: 小函数 increment、double 可独立复
    • 项阿丑
    • 9天前
    • 9
    • 点赞
    • 评论
    Swift
  • 3-17.【函数式编程】将以下函数转换为 Point-Free 风格
    1️⃣ 原始函数 输入:x 输出:(x + 1) * 2 普通写法显式使用参数 x 2️⃣ 分解为小函数 先把函数拆成两个小函数: 3️⃣ 使用函数组合 在 Swift 中没有内置函数组合运算符,但我
    • 项阿丑
    • 9天前
    • 8
    • 点赞
    • 评论
    Swift
  • 3-16.【函数式编程】什么是 Point-Free 风格?用 Swift 给一个简单例子。
    1️⃣ 什么是 Point-Free 风格? 定义: Point-Free 风格是一种 函数式编程风格,特点是 不显式提及函数参数,而是通过 函数组合 来定义新的函数。 核心思想: 关注函数组合而不是
    • 项阿丑
    • 9天前
    • 10
    • 点赞
    • 评论
    Swift
  • 3-15.【函数式编程】为什么纯函数更容易与 async/await、Combine 或 Swift Concurrency 集成。
    1️⃣ 核心原因 纯函数的特性使它们在异步编程中非常自然地组合和使用: 纯函数特性 对异步编程的优势 输入决定输出 异步任务可以安全地并行执行,不依赖外部状态,保证相同输入得到相同输出 无副作用 异步
    • 项阿丑
    • 9天前
    • 9
    • 1
    • 评论
    Swift
  • 3-14.【函数式编程】在 Swift 中如何使用纯函数和副作用分离实现数据处理流水线?
    1️⃣ 核心思路 目标:把数据处理逻辑设计成可组合的流水线,同时: 核心处理逻辑保持纯函数 副作用(打印、网络、文件写入)集中在最外层 原则: 纯函数 → 只处理数据,不依赖外部状态 副作用函数 →
    • 项阿丑
    • 9天前
    • 9
    • 点赞
    • 评论
    Swift
  • 3-13.【函数式编程】讨论函数式编程中如何管理 I/O、网络请求或日志打印等副作用。
    1️⃣ 副作用的问题 副作用包括: I/O 操作:读取文件、写入文件、打印、数据库访问 网络请求:调用 API、上传/下载数据 系统状态:修改全局变量、发送通知 问题: 同样输入可能产生不同输出 函数
    • 项阿丑
    • 9天前
    • 13
    • 点赞
    • 评论
    Swift
  • 3-12.【函数式编程】请举例说明一个有副作用的函数,并给出纯函数替代实现。
    1️⃣ 有副作用的函数示例 假设我们要实现一个累加器,每次调用函数都会累加值并打印: 分析: 副作用 1:修改了外部变量 total 副作用 2:打印输出 非纯函数原因:同样输入 x = 3,每次返回
    • 项阿丑
    • 9天前
    • 9
    • 点赞
    • 评论
    Swift
  • 3-11.【函数式编程】什么是纯函数?在 Swift 中如何判断一个函数是否纯?
    1️⃣ 什么是纯函数? 定义:纯函数是满足以下条件的函数: 输出仅依赖输入 相同的输入必定产生相同的输出 不依赖或修改外部状态 没有副作用(Side Effects) 不修改外部变量 不操作全局状态
    • 项阿丑
    • 9天前
    • 6
    • 点赞
    • 评论
    Swift
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30