F# printfn 异常

2024-01-22

任何人都可以解释为什么这会导致错误:

let xs = [| "Mary"; "Mungo"; "Midge" |]

Array.iter printfn xs

虽然这不会:

Array.iter printfn [| "Mary"; "Mungo"; "Midge" |]

printfn 的签名是Printf.TextWriterFormat<'a> -> 'a。编译器将字符串的文字值推断为Printf.TextWriterFormat<unit>但不能对动态字符串执行此操作。

您可以通过添加正确的类型注释来帮助第一个示例中的编译器:

let xs: Printf.TextWriterFormat<unit> [] = [| "Mary"; "Mungo"; "Midge" |]
Array.iter printfn xs

或使用显式构造函数:

let xs = [| "Mary"; "Mungo"; "Midge" |]
Array.iter (fun s -> printfn <| Printf.TextWriterFormat<unit>(s)) xs

一般来说,这样做太冗长了。因此,指定格式字符串,例如"%s"对于字符串和"%O"对于覆盖类型ToString()方法是最好的方法:

let xs = [| "Mary"; "Mungo"; "Midge" |]
Array.iter (printfn "%s") xs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

F# printfn 异常 的相关文章

  • F# 中的数组初始化

    如何根据给定的记录类型在 F 中创建和初始化数组 假设我想创建一个包含 100 个 record1 记录的数组 e g type record1 value1 string value2 string let myArray Array i
  • F# 检查列表是否为空

    作为 F 新手 我正在尝试实现一个简单的函数 该函数将索引和列表作为参数 然后返回给定索引的列表值 let rec getElementAtIndex index int list a list match index list with
  • F# 命名约定

    F 是否有 官方 命名 大小写约定 我总是怀疑是否使用 C 风格 Class MyFunctionName or Module my function name 在 F 中 您应该混合 BCL 类和 F 库类 它们具有不同的大小写 并且代码
  • 如何使 FSI 在 NET5 下工作并让愚蠢的 stackoverflow 消息“标题不能包含...”闭嘴?

    我正在将一个相当小的 F 项目从 Net Framework 迁移到 NET5 迁移非常简单 一切正常 包括测试 但是 当我运行一些脚本时 我现在收到以下错误 Microsoft R F Interactive version 11 0 0
  • F# 尝试处理未处理的异常

    在下面的代码中 我想读取一个文件并返回所有行 如果存在 IO 错误 我希望程序退出并将错误消息打印到控制台 但程序仍然遇到未处理的异常 对此的最佳实践是什么 我想我不需要Some None因为无论如何我都希望程序在错误时退出 谢谢 let
  • 使用不区分大小写的比较从集合中减去记录

    我有一组记录 type Person Name string Age int let oldPeople set Name The Doctor Age 1500 Name Yoda Age 900 与上面的硬编码示例不同 这组数据实际上来
  • 带表达式的 F# 类型定义

    是否可以这样表达 type id int gt 0 我知道它不可能静态执行 因为这意味着 F 具有依赖类型 在 C 中 我习惯于使用代码契约来执行此类操作并获得运行时强制执行 我正在这里寻找类似的东西 Thanks 编辑 感谢您提供的所有答
  • F# 和 MEF:导出函数

    因此 我试图在 F 控制台应用程序中运行这个简单的测试 open System Reflection open System ComponentModel Composition open System ComponentModel Com
  • 如何从 C# 调用 F# 类型扩展(静态成员函数)

    FSharp 代码的结构如下 我无法控制源代码 namespace FS
  • 从函数返回随机值是副作用吗?

    我当时正在编写一些 F 代码 并且正在编写一个从一组字符串中返回随机字符串的函数 假设我有这样的事情 open System let a a b c d let rstring arr string let r new Random arr
  • F#:Microsoft.FSharp.Data.TypeProviders 是否需要配置文件 47?

    这是后续我昨天的帖子 https stackoverflow com questions 30399773 f fsc error fs2024 static linking may not use assembly that target
  • F# 生成日期序列/数组

    在 F 中我可以轻松做到 let a 1 10 那我为什么不能做 let a DateTime Parse 01 01 2012 let b DateTime Parse 01 01 2020 let dateList a b 它给出了一个
  • 函数式编程是否避免了状态?

    根据维基百科 http en wikipedia org wiki Functional programming 函数式编程是一种编程范式 它将计算视为数学函数的评估避免状态和可变数据 强调我的 这是真的吗 我个人的理解是 它使状态更加明确
  • 如何在 F# 测量单位上定义扩展成员?

    暂且不说我们是否应该对像角度这样的无单位概念使用测量单位 假设我已经定义了degree and radianF 中的单位 type
  • 如何在 F# 中使用 LINQ 更新数据库中的表?

    我看过很多有关如何查询数据库的示例 但没有看到有关如何更新记录的示例 下面是我编写的用于检索表的简单代码 但有人可以解释一下如何修改字段 例如lastActiveDate 并更新数据库上的表 谢谢你 周日 open System open
  • 如何使用反射来确定 F# 联合类型是否是类似枚举的联合(每种情况下都没有字段)

    术语 在下面的文章中 我将使用术语 引用枚举 来指代 F 类型 该类型是在每种情况下都没有字段的可区分联合 例如 type AReferenceEnum Yes No Maybe 要求 我需要一个给定的函数Type 返回一个bool告诉类型
  • 我可以提供类型作为 F# 中类型提供程序的输入吗?

    这样做有什么我应该注意的陷阱吗 您知道处理我可能遇到的相同 pb 的现有代码吗 Thks 不幸的是 您无法将类型作为静态参数传递给类型提供程序 使用传递的静态参数MyProvider lt first argument 42 gt 必须是原
  • .Net 中可用的并行技术

    我是 Net 平台的新手 我查了一下 发现 Net中有几种做并行计算的方法 任务并行库中的并行任务 即 Net 3 5 PLINQ Net 4 0 异步编程 Net 2 0 异步主要用于执行 I O 繁重的任务 F 有简洁的语法支持这一点
  • 如何在 F# 中实现返回 void 的接口成员

    想象一下 C 中的以下接口 interface IFoo void Bar 我如何在 F 中实现这一点 我在 30 分钟的在线搜索中找到的所有示例都仅显示具有返回类型的示例 我认为这在函数式风格中更常见 但在这种情况下我无法避免 这是我到目
  • F# - 构造嵌套类型

    我想这是非常基本的 F 问题 类型有 type Id1 Id1 of int type Id2 Id2 of string type Id Id1 Id2 type Child Id Id Smth string list type Nod

随机推荐

  • 分段错误处理程序中的分段错误

    Linux 下分段故障处理程序中发生的分段故障是否有一些定义的行为 是否会再次调用同一个处理程序 如果是 在所有平台上是否已定义等等 谢谢 答案取决于您如何安装信号处理程序 如果您使用已弃用的安装信号处理程序signal http linu
  • 如何防止div进出动画中的多次点击

    我想通过点击它来将 div 移入和移出 我只是像这样对 div 进行动画处理
  • 在 Bash 中如何查看字符串是否不在数组中?

    我试图在不添加额外代码 例如另一个 for 循环 的情况下执行此操作 我可以创建将字符串与数组进行比较的正逻辑 虽然我想要负逻辑并且只打印不在数组中的值 但本质上这是为了过滤掉系统帐户 我的目录中有这样的文件 admin user xml
  • SWIG 和 Python3 导入错误

    我用 C 编写了一个库 我使用SWIG http swig org为 Java Python 等生成绑定 我设法为这两种语言编写自定义类型映射等等 我还设法使用我的库 自定义协议 并与我用 C 编写的服务器 我用 Java 编写的客户端以及
  • 部署 Perl 应用程序

    部署 Perl 应用程序的最佳实践是什么 假设您正在部署到安装了少量 CPAN 模块的普通盒子上 理想的构建 部署方法是什么 Module Build ExtUtils MakeMaker 其他 我正在从那些针对大型应用程序重复执行此操作的
  • 如何使用 Office 2010 调试 Office 2007-addin

    我想开发一个适用于 Word 2007 和 Word 2010 的 Word 插件 因此 我在 Visual Studio 中创建了一个 Word 2007 插件项目 我的机器上 仅 安装了 Word 2010 当我尝试从 Visual S
  • 如何访问vagrant box laravel/homestead中的特定端口?

    我正在我的 vagrant laravel homestead 盒子上开发一个节点项目 一切正常 当我转到我的主机定义时 我可以访问该项目 etc hosts 192 168 10 10 project 但是 我正在尝试使用 webpack
  • android 是否可以在来电或去电时录制通话

    在android中 可以在不打开手机扬声器的情况下在来电 去电期间录制语音通话 我在android市场上看到过一个应用程序 由于它使用麦克风进行录音 因此在不打开扬声器的情况下无法正确记录对方的声音 可以通过其他技术来完成吗 final M
  • 从两个不同的脚本写入和读取 fifo

    我有两个 bash 脚本 一个脚本写入 fifo 第二个从 fifo 读取 但在第一个结束之后写入 但有些东西不起作用 我不明白问题出在哪里 这是代码 第一个脚本是 作者 bin bash fifo name myfifo Se non e
  • Git 将文件添加到存储库

    我遵循基本的 Git 教程并添加了 README 文件 效果很好 然后我将项目文件复制到同一文件夹并尝试通过运行将它们添加到存储库 git add all git ci test my alias for commit git push o
  • git 项目的 Eclipse 设置

    关于这个话题有很多问题 但目前还没有令人满意的答案 例如this https stackoverflow com questions 8820668 the current branch is not configured for pull
  • ARM Data Abort错误异常调试

    所以现在我明白我遇到了 ARM 数据中止异常 我了解了如何捕获异常本身 STL 库中的错误地址 但我想在异常之前返回堆栈帧 我正在使用 IAR 工具链 它告诉我异常后调用堆栈不可用 有没有一种技巧可以说服工具向我显示调用堆栈 感谢您的快速帮
  • 滚动窗口重访 - 添加窗口滚动数量作为参数 - 向前分析

    我一直在网上搜索可以创建的方法滚动窗户这样我就可以以通用的方式对时间序列执行称为前向分析的交叉验证技术 然而 我还没有找到任何在 1 窗口大小方面具有灵活性的解决方案 几乎所有方法都有这个 例如 pandas rolling https p
  • 拖动选项卡以将其置于前面

    我正在将数据从应用程序外部拖到 TabControl 上 我希望能够拖动 选项卡 并将该选项卡带到前面 TabControl 和 TabItems 上的拖动事件似乎仅针对活动选项卡触发 并且仅在拖动选项卡内容而不是 选项卡 本身时触发 该控
  • 增加图形库和访问者

    我正在编写一个用于操作键图的库 并且我正在使用 Boost Graph Library 来存储数据 不幸的是 我似乎无法弄清楚如何使用它来实现正确的访问者模式 因为您无法对顶点进行子类化 您必须依赖 属性 库中提供的访问者框架似乎非常适合使
  • 如何通过电子邮件向某人发送 git 存储库?

    我努力了 git archive HEAD format zip gt archive zip 然后我通过电子邮件发送 archive zip 在另一端他们将 archive zip 解压缩到一个文件夹中 但是当他们尝试任何 git 命令时
  • 从 DataTemplate UWP 绑定 UserControl DP

    我有一个FlipView这表明雕像 雕像包含一个Path到他们的形象 将此属性绑定到常规 DataTemplate 就可以了 下面的代码工作正常
  • 指向页面部分的锚链接在浏览器刷新、后退和前进时不起作用

    我制作了一个 html 页面 页面内有链接 div a href first first a a href second second a div First div div div Second div div div 但此代码不适用于页
  • 如何配置 rhino 为 angularjs 控制器运行 jasmine 测试

    我在使用 Jasmine sbt 插件为 Angular JS 应用程序进行单元测试时遇到问题 当我将 angular js 版本 1 3 1 添加到 test dependency js 时 EnvJasmine loadGlobal E
  • F# printfn 异常

    任何人都可以解释为什么这会导致错误 let xs Mary Mungo Midge Array iter printfn xs 虽然这不会 Array iter printfn Mary Mungo Midge printfn 的签名是Pr