用于嵌套布尔测试的 F# 计算表达式?

2023-12-29

我认为我对 F# monad(工作流程)已经有了足够的了解,我在代码中发现了一些实现它们有意义的地方。

例如,我有一个具有多个嵌套 if/then 的函数,即只有当数据一路通过某些“测试”时,该函数才应该继续。

我熟悉“也许”单子,但在我见过的所有示例中,它被编码为操作let!绑定,我没有这样做。我希望有人能为我提供一个为嵌套布尔测试量身定制的“也许”工作流程的示例,而不是let binds.


您无需定义新的 monad 即可完成此任务。只需定义

let test b = if b then Some () else None

您现在可以使用它maybe:

maybe {
    do! test (1 > 0)
    printfn "1"
    do! test (2 > 3)
    printfn "2"

    return ()
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于嵌套布尔测试的 F# 计算表达式? 的相关文章

  • F# 类型提供程序与 Lisp 宏

    我一直在阅读有关 F 3 0 类型提供程序的内容 例如here http msdn microsoft com en us library hh156509 aspx 并且它们似乎基于一种编译时代码生成 在这方面我想知道它们与 Lisp 宏
  • 将 Foq 与 F# 函数类型结合使用

    例如 我使用 F 类型定义来防止函数之间的硬依赖 type IType1 int gt int type IType2 int gt string let func1 i int int i i let func2 i int string
  • 该表达式的类型为 int,但此处与 unit 类型一起使用

    我试图在 F 中获得与此 vb net 代码完全相同的 非功能性的 Function FastPow ByVal num As Double ByVal exp As Integer As Double Dim res As Double
  • 从 C# 调用高阶 F# 函数

    给定 F 高阶函数 在参数中采用函数 let ApplyOn2 f int gt int f 2 和 C 函数 public static int Increment int a return a 我怎么打电话ApplyOn2 with I
  • 将属性应用于返回值 - 在 F# 中

    在 C 中 可以将属性应用于方法的返回 return DynamicAttribute public object Xyz return new ExpandoObject 这在 F 中可能吗 背景 我想要一个用 F 编写的库的方法 该方法
  • F# 和模糊逻辑

    我知道这可能听起来很奇怪 但我想知道 Microsoft Visual F 正在进入的这个新世界中的一件事 这种语言有很多应用 我要学习 关于解析 函数式编程 结构化编程 但是人工智能呢 模糊逻辑有什么应用吗 F 是一种适合模糊逻辑应用程序
  • “不等于”的 F# 语法是什么?

    在 C 代码中 它会是这样的 if c 0 some code 那么在 F 中呢 From MSDN 有关 F 算术运算符的页面 http msdn microsoft com en us library dd469493 aspx 看起来
  • F# 命名约定

    F 是否有 官方 命名 大小写约定 我总是怀疑是否使用 C 风格 Class MyFunctionName or Module my function name 在 F 中 您应该混合 BCL 类和 F 库类 它们具有不同的大小写 并且代码
  • 何时评估 F# 函数调用;懒惰地还是立即地?

    F 中的柯里化函数 我知道传入参数子集会产生一个带有预设的函数 我只是想知道传递所有参数是否有什么不同 例如 let addTwo x y x y let incr a addTwo 1 let added addTwo 2 2 incr是
  • 将事件绑定到 ItemsControl 中的按钮

    我有一个 Windows Phone 7 应用程序 其中包含一些 xaml 如下所示
  • 如何编写一个计算表达式生成器来累积值并允许标准语言构造?

    我有一个计算表达式生成器 可以随时生成值 并且有许多自定义操作 但是 它不允许标准 F 语言构造 并且我在弄清楚如何添加此支持方面遇到了很多麻烦 举一个独立的例子 下面是一个非常简单且毫无意义的构建 F 列表的计算表达式 type Item
  • java 8可选替换返回null

    我正在将代码重构为 Java 8 并且想用Optional 替换空检查 public Employee findEmployeeById String id List
  • 使用不区分大小写的比较从集合中减去记录

    我有一组记录 type Person Name string Age int let oldPeople set Name The Doctor Age 1500 Name Yoda Age 900 与上面的硬编码示例不同 这组数据实际上来
  • 自定义 monad 的 MonadTransControl 实例

    的文档monad control提供有关如何创建实例的示例MonadTransControl using defaultLiftWith and defaultRestoreT 该示例适用于以下情况newtype newtype Count
  • 如何编写强制执行复杂模式的 F# 类型提供程序?

    就在最近 我处理了一些交通和旅行信息的数据 即数据Datex2 http www datex2 eu content datex ii xml schema 21格式 该项目时间不长 现在已经结束 我像往常一样继续生成了一堆强类型 C 类x
  • 像 Javascript 对象一样循环遍历 F# 记录

    在 javascript 中 我可以使用简单的 for 循环访问对象的每个属性 如下所示 var myObj x 1 y 2 var i sum 0 for i in myObj sum sum myObj i 我想知道我是否可以用 F 做
  • F# 中的选项类型如何工作

    因此 我一直在阅读 Apress 的 Expert F 书籍 主要将其用作构建玩具式 F 库时的参考 但有一点我未能掌握 那就是 Option 类型 它是如何工作的以及它在现实世界中的用途是什么 选项类型至少为similar to Null
  • F# 静态成员类型约束

    我正在尝试定义一个函数 factorize 它使用类似于 Seq sum 的结构类型约束 需要静态成员 Zero One 和 以便它可以与 int long bigint 等一起使用 似乎无法获得正确的语法 并且无法找到有关该主题的大量资源
  • 为 Swift 中的Optional提供默认值?

    如果您只想在 nil 的情况下提供默认值 那么在 Swift 中处理可选值的习惯用法似乎过于冗长 if let value optionalValue do something with value else do the same thi
  • 使用 System.Text.Json 序列化记录成员

    我在记录中使用自我引用成员 如下所示 type Payload Id Guid member x DerivedProperty Derived Property using id x Id NewtonSoft Json会序列化这个 但是

随机推荐

  • webgl readpixels 始终返回 0,0,0,0

    我正在尝试在 WebGl 中进行挑选 我渲染了两个形状 每个形状上映射了不同的纹理 我正在尝试抓取某些坐标上的像素 这是一个例子 var pixelValues new Uint8Array 4 gl readPixels 10 35 1
  • 尝试使用 C# 打开我的 Excel 文件并收到错误

    我尝试从代码中读取我的 Excel 文件并收到System InvalidCastException Additional information Unable to cast COM object of type System ComOb
  • 为什么Django中的404页面没有处理中间件?

    所以我在 URL 配置中设置了一个路径 path kitten views Kitten as view name kitten 以及同一视图中缺少 URL 的处理程序 handler404 views Kitten as view 我有一
  • 从 MyISAM 迁移到 InnoDB

    我对这个主题进行了一些搜索并找到了一些结果 然而 我正在寻找是否有人知道或可以向我指出一些真实或有信誉的案例研究 这些案例研究详细说明了从 MyISAM 迁移到 InnoDB 的好处 特别是性能 如果您能指出任何有关 MySQL 5 5 及
  • 管道“DatePipe”的参数“日期格式”无效?

    这似乎是一个简单的问题 我在 Ionic 2 应用程序中使用管道来获取日期格式 这是收到的 Web 服务响应 MessageID 544882 CategoryID 1 DateSent 2015 05 18T02 30 56 Title
  • 如何刷新 Bokeh 文档

    我想刷新散景文档 以便我可以用新的绘图替换旧的绘图 然而 现在我只是将新的绘图附加到文档中 这样旧的绘图就不会消失 myfile py from bokeh plotting import curdoc figure doc curdoc
  • shinyjqui::orderInput 中的最大项目

    如何限制数组中元素的数量orderInput小部件 来自包shinyjqui 例如 在下面的代码片段中 我想在第一个小部件中选择最多 2 个月 ui R library shiny library shinyjqui shinyUI flu
  • 如何让 android 服务保持phonegap ui 的活动

    我正在开发一个使用phonegap cordova 的Android 应用程序 该应用程序使用 JavaScript 不时从服务器获取内容 并在有新内容时发出系统托盘警报 我面临的问题是 当 Android 内存不足或其他任何情况时 应用程
  • 将对象数组转换为数组数组

    var json one text1 two text2 three 3 four 4 one text3 two text4 three 5 four 6 one text5 two text7 three 8 four 9 如何将上面的
  • Dokan 插件为单个订单的客户发送多封电子邮件

    我已经随我的 woocommerce 安装了 Dokan 多供应商插件 如果订单包含不同卖家的产品 它会为单个订单向客户发送多封电子邮件 订单邮件如下 邮寄所有购买的产品 订单中由一位卖家提供的产品 如何防止发送多封邮件 我只需要向客户发送
  • Karma + PhantomJS + 无法访问互联网

    我需要在无法访问互联网的持续集成服务器上使用 PhantomJS 运行 Karma 测试 每个构建都从运行开始npm install no registry进而gruntGrunt Karma 配置为单次运行 singleRun true
  • 当一个 SQL 表同时收到多个更新请求时会发生什么?

    我在 SQL Server 数据库中有一个表 其中记录了用户的最新活动时间 有人可以向我确认一下 当不同用户同时收到多个更新请求时 SQL Server 将自动处理这种情况吗 我预计该表上有 25 50 个并发更新请求 但每个请求负责更新表
  • 完成承诺而不拒绝/解决?

    我有一个等待用户输入的自定义确认对话框 我把它包裹在一个承诺中 当用户选择 是 时我resolve承诺 然而 当用户选择no这并不是真正的错误 而是不应该执行下一个任务 我应该如何处理带有承诺的情况 根本不调用解析 拒绝或者有更好的方法吗
  • iPhone 多点触控与 CorePlot 交互

    我正在开发一个带有核心图图表的 iPhone 应用程序 在一些教程的帮助下 我成功地通过单击和拖动来完成此操作 如何通过多次触摸和拖动来实现它 有人请帮帮我吗 视图控制器 m void viewDidLoad super viewDidLo
  • 在 Travis Public Repository 中如何添加也适用于 Pull 请求的安全变量

    我在公共存储库上有 Travis ci 执行完成后 它会生成一个图像 我想将其上传到 cloudinary com 但它可以是任何其他服务 问题是 要做到这一点 我需要在 travis yml 中添加身份验证令牌 但我不想公开暴露它 为此
  • 如何将 Redux RTK 查询与 Supabase 结合使用

    有谁知道如何将 Supabase 查询模式与 RTK 查询结合使用 例如https dev to sruhleder using react query with supabase a03 https dev to sruhleder us
  • FOSUserBundle 覆盖注册但无法加载类型错误

    我尝试使用 FOSUserBundle 我按照文档中的说明覆盖 Bundle 但是当我尝试在 login 工作时访问 register 时出现此错误 我没有覆盖它 Could not load type app user registrat
  • Vite 开发服务器中的自定义 URL(多页面应用程序)

    我正在构建一个多页面应用程序Vite https vitejs dev 从 Webpack 迁移 要在开发服务器中打开登录页面 我必须转到 localhost 3010 login html 是否可以调整 Vite 配置来提供 login
  • 如何从绝对文件路径获取文件的 url 路径 - 将绝对路径转换为 ​​url 路径 - PHP

    我已将图像路径存储为服务器磁盘上的绝对文件路径 var www u1234567 data www somesampledomain xyz mediaimages 48fa6c736b75e1da485656e97b7d76f9 png
  • 用于嵌套布尔测试的 F# 计算表达式?

    我认为我对 F monad 工作流程 已经有了足够的了解 我在代码中发现了一些实现它们有意义的地方 例如 我有一个具有多个嵌套 if then 的函数 即只有当数据一路通过某些 测试 时 该函数才应该继续 我熟悉 也许 单子 但在我见过的所