fn 类型的 ml 函数:'a -> 'b

2024-01-10

功能:

fn : 'a -> 'b

现在,有没有可以定义并具有这种类型的函数?


标准机器学习中该函数签名有两种可能的实现。一种使用异常,另一种使用递归:

val raises : 'a -> 'b =
  fn a => raise Fail "some error";

(* Infinite looping; satisfies the type signature, *)
(* but won't ever produce anything.                *)
val rec loops : 'a -> 'b =
  fn a => loops a;

第一个解决方案对于定义辅助函数可能有用,例如bug,这可以节省一些按键操作:

fun bug msg = raise Fail ("BUG: " ^ msg);

另一种解决方案对于定义服务器循环或 REPL 可能很有用。

在基础库中,OS.Process.exit就是这样一个返回未知泛型类型的函数'a:

- OS.Process.exit;
val it = fn : OS.Process.status -> 'a

带有类型的小 echo REPLval repl = fn : unit -> 'a:

fun repl () =
  let
    val line = TextIO.inputLine TextIO.stdIn
  in
    case line of
      NONE        => OS.Process.exit OS.Process.failure
    | SOME ":q\n" => OS.Process.exit OS.Process.success
    | SOME line   => (TextIO.print line ; repl ())
  end

您可能还会发现这个很有用关于 Haskell 的类型签名的问题forever功能 https://stackoverflow.com/questions/30170279/haskell-forever-type-signature.

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

fn 类型的 ml 函数:'a -> 'b 的相关文章

  • 在 Idris 中,我可以证明自由定理吗? `forall t 类型的唯一(全部)函数。 t -> t` 是 `id`?

    对于足够多态的类型 参数性可以唯一地确定函数本身 参见瓦德勒的定理免费 http www cs sfu ca CourseCentral 831 burton Notes July14 free pdf了解详情 例如 唯一具有类型的总函数f
  • 在自己的定义中使用变量?

    无限流 val ones Stream Int Stream cons 1 ones 一个值怎么可能在它自己的声明中使用呢 看起来这应该会产生编译器错误 但它确实有效 它并不总是递归定义 这实际上有效并产生 1 val a Int a 1
  • 返回元组的第一个元素

    假设我创建一个将两个整数相加的函数 def addInt a Int b Int Int Int val x a b x 2 我回来了 result 2 故意为了这个问题 现在我想创建一个仅返回 x 的变量 val result addIn
  • 纯函数可以异步吗?

    在浏览纯函数的定义时 它通常定义有两个特征 1 给定相同的输入应该产生相同的输出 2 不应产生任何副作用 这是否也意味着纯函数不应该是异步的 如果不是 怎么会这样 如果是的话 我很想看到 JavaScript 中异步纯函数的一些示例 是的
  • 为什么要使用 Python 进行函数式编程?

    在工作中 我们过去常常以非常标准的面向对象方式来编写 Python 程序 最近 有几个人加入了功能性潮流 他们的代码现在包含更多的 lambda map 和reduce 我知道函数式语言有利于并发性 但是函数式 Python 编程真的有助于
  • 使用 ocaml List.fold_left 列表中的最后一个元素

    我可以通过以下代码找到列表的最后一个元素 let last xs a list a let rec aux xs prev match xs with gt prev x ys gt aux ys x in match xs with gt
  • python函数返回函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过 Emacs 评估 ghci 或 Hugs 中的缓冲区

    在 Emacs 中使用 sml mode 我已经能够使用以下命令将缓冲区内容直接发送到较差的 SML 进程C c C b 现在我只想用 Haskell 做同样的事情 Haskell 模式似乎不支持这一点 所以我想知道 使用 Emacs 和
  • 纯函数怎么能做IO呢?

    我最近了解到莫纳德随机数 http hackage haskell org package MonadRandom 0 1 13 docs Control Monad Random Class html t 3aMonadRandom图书馆
  • SML 如何检查变量类型?

    有什么方法可以检查 测试变量的类型吗 我想这样使用它 if x int then foo else if x real then bar else if x string then else ML 语言是静态类型的 因此某个东西不可能在不同
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • std::bind 重载解析

    下面的代码工作正常 include
  • 如何在不改变也不重新分配的情况下实现可设置和可检索的状态?

    编写代码时可以遵循以下几条规则 当没有重新分配时 代码更容易阅读和推理 许多 linter 推荐首选const只要有可能 代码也更容易阅读和推理对象何时不会发生变化 如果您在代码的一部分中定义了一个对象 那么知道您可以在其他地方自由引用该对
  • 你为什么决定“反对”使用 Erlang?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 你是否真的 尝试过 意味着在其中编程 而不仅仅是阅读有关它的文章 Erlang并决定在项目中不
  • 函数式语言中的部分求值和函数内联有什么区别?

    我知道 函数内联就是用函数定义代替函数调用 部分评估是在编译时评估程序的已知 静态 部分 在 C 等命令式语言中 两者之间存在区别 其中运算符与函数不同 但是 在像 Haskell 这样的函数式语言 其中运算符也是函数 中 两者之间有什么区
  • 某些数据结构是否比其他数据结构更适合函数式编程?

    In 现实世界哈斯克尔 http book realworldhaskell org 有一个标题为 没有数组或哈希表的生活 的部分 其中作者建议在函数式编程中首选列表和树 而在命令式程序中可能会使用数组或哈希表 这是有道理的 因为在创建新列
  • 返回带有参数的函数的函数

    创建一个应返回包含原始函数参数的函数时 我应该如何处理 例如考虑这个函数 a lt function value function x x value 我希望它返回我在结果函数的参数中指定的值 如下所示 b lt a 3 gt b gt f
  • 在 Python 中,部分函数应用(柯里化)与显式函数定义

    在 Python 中 以下方式是否被认为是更好的风格 根据更一般的 可能是内部使用的功能显式定义有用的功能 或者 使用偏函数应用来显式描述函数柯里化 我将通过一个人为的例子来解释我的问题 假设编写一个函数 sort by scoring 它
  • 如何使用 rxpy/rxjs 延迟事件发射?

    我有两个事件流 一个来自电感环路 另一个来自网络摄像机 汽车将驶过环路 然后撞上相机 如果事件彼此相差在 N 毫秒内 汽车总是会首先进入循环 我想将它们组合起来 但我也希望每个流中不匹配的事件 硬件可能会失败 全部合并到单个流中 像这样的事

随机推荐

  • React Router v4 中的 hashHistory 在哪里?

    我正在尝试为我的 React 应用程序使用路由器 我尝试了一段时间之前一直在使用的东西 但似乎无法启动 有hashHistory在 React Router v4 中被删除 重新格式化
  • 在酶中使用 id 进行包装器查找,并且玩笑未找到元素

    我是 Jest 和 Enzyme 测试的新手 我想知道为什么 find 函数不能与 id 一起使用 来自react的html 只是id增量的代码 div div div div
  • LL 解析器比 LR 解析器有什么优势?

    LL 解析器相对于 LR 解析器有什么优势来保证它们在当今的解析器生成器工具 http en wikipedia org wiki Comparison of parser generators 根据维基百科 http en wikiped
  • 使用 Bluehost 帐户设置 PHPMailer

    我尝试联系 Bluehost 的支持人员 但他们不知道如何设置 我所做的是首先创建我的电子邮件帐户 VPS 帐户 然后获取我的电子邮件设置的所有详细信息 电子邮件设置 邮件服务器用户名 电子邮件受保护 cdn cgi l email pro
  • golang反映值类型的切片

    fmt Println v Kind fmt Println reflect TypeOf v 如何找出切片的反射值的类型 上面的结果是 v Kind slice typeof reflect Value 当我尝试Set如果我创建了错误的切
  • 使用 C# 循环遍历屏幕上给定标签 WP7 的所有按钮

    我正在寻找一种简单的方法来循环浏览屏幕上给定标签的所有按钮 例如 富 我正在使用 WP7 使用 C 我对这个平台很陌生 所以对我要轻松一些 P 谷歌搜索这类事情对我来说也不太有效 我认为我的术语是错误的 所以任何关于这方面的提示也将不胜感激
  • CakePHP 应用程序部署

    我有兴趣了解人们如何部署他们的 CakePHP 应用程序 最近有人联系我做一些自由的 CakePHP 开发 这对我来说是一个在表示层获得一些经验的好机会 在我的 FT 工作中 我在业务层和持久层进行 Java EE 开发 此时我的想法有点混
  • 动态加载控制器和 ng-include

    目前我有一个有侧边栏的应用程序 侧边栏使用以下方式加载不同的html模板ng include基于用户选择执行的操作 这是一个与地图相关的应用程序 例如 如果用户选择 添加航段 按钮 它将加载add leg html使用模板将其放入侧边栏ng
  • Android数据存储在xml中

    我有一个网络平台 用于存储我正在构建的应用程序的数据 Web 平台是使用 Ruby on Rails 构建的 主要应用程序适用于 Android 我很想知道将数据存储在 XML 文件 对于 Android 应用程序 中的任何性能问题 最终
  • Swift:如何在登录视图后显示选项卡栏控制器

    我在这里看到了很多与此类似的帖子 但它们都是关于 Objective C 而我正在用 Swift 开发我的应用程序 正如您从图像中看到的 我有一个登录屏幕视图 并且我正确地实现了登录机制 现在我希望登录成功后 显示选项卡栏控制器 在我的登录
  • 我可以将 tf.map_fn(...) 应用于多个输入/输出吗?

    a tf constant 1 2 3 4 5 6 b tf constant True False dtype tf bool a eval array 1 2 3 4 5 6 dtype int32 b eval array True
  • 无法在 Elasticsearch 中注册快照存储库

    我正在使用 Elasticsearch 1 4 和 ubuntu 12 04 3 LTS 尝试为本地 elasticsearch 创建快照 我参考这个website http www elasticsearch org guide en e
  • TYPO3:如何在后端添加css和JS

    我该如何添加css and javascript后端有文件吗 我想将这些文件用于自定义创建的内容元素以使它们对用户更具吸引力 System TYPO3 v9 Mode 作曲家模式 Target 自定义内容元素 在 TYPO3 v9 中 您必
  • N 个函数调用后的睡眠装饰器 Python/Selenium

    使用 Python Selenium 我定义了一个休眠装饰器 在 Web 抓取项目的 5 个函数调用 对服务器的请求 之间等待 20 秒 这样我就不会压垮他们的服务器 查看终端输出 它似乎按照我的预期工作 但是当我在创建输出文件 Hitac
  • 输入类型时间,有24小时以上选项

    我想使用时间输入来允许用户在视频中选择精确的时间 在一些很长的视频上 我不希望输入将选择限制为最大 23 59 59 是否可以选择例如 46 59 10 IE 保持分钟和秒部分的原始行为 但允许小时超过 23 我尝试设置max 10000
  • 如何在 iOS 中使用 Swift 正确检索加速度计数据?

    我正在尝试记录 iPhone 加速度计 我自己的 iPhone 5s 的数据 并使用以下命令在屏幕上为该数据设置标签String format 2f data 其中 data 是我要记录的特定轴的值 为此 我设置了 CMMotionMana
  • Python 类继承问题

    我正在研究 Python 类继承并遇到了一个问题 继承的 init 如果从子类 下面的代码 调用 则不会执行我从 Active Python 得到的结果是 gt gt gt start Tom Sneed Sue Ann Traceback
  • GCM - 收到错误消息“处理请求时出现未知错误。请重试。”创建新项目时

    我们正在尝试使用 Google Developer Console 获取 API 密钥和发件人 IDhttps developers google com mobile add https developers google com mob
  • 将 Sublime Text 与 Tomcat 集成

    在工作中 我们开发 Java 应用程序并使用 Eclipse 作为一名前端开发人员 我想完全切换到 Sublime 但它缺少 Eclipse 的一个功能 没有它我就无法工作 开发时 我必须使用 Maven 构建项目并将其发布到 Tomcat
  • 'b' aria-label='fn 类型的 ml 函数:'a -> 'b'> fn 类型的 ml 函数:'a -> 'b

    功能 fn a gt b 现在 有没有可以定义并具有这种类型的函数 标准机器学习中该函数签名有两种可能的实现 一种使用异常 另一种使用递归 val raises a gt b fn a gt raise Fail some error In