为什么 OCaml 不允许函数匹配? [关闭]

2024-04-21

if I do

match (fun i -> i + 1) with
   (fun i -> i + 1) -> true;;

结果被拒绝了。

为什么 OCaml 不允许函数匹配?


Ocaml(如 Haskell)基于 Lambda 演算。 一般来说,比较两个函数是不可判定的:如果你可以比较两个函数,那么你就可以判断一个函数是否终止。但是,如果你的语言是图灵完备的,你就不能。

我们使用的所有通用语言都是图灵完备的:它们能够计算任何东西。

所以,也许在某些情况下是可能的,但在一般语言中是不可能的。

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

为什么 OCaml 不允许函数匹配? [关闭] 的相关文章

  • javascript 函数绑定到什么对象(它的“this”是什么)?

    我知道它在函数内部this var func function return this f arguments callee gt true if bound to some object gt false if is bound to n
  • 在 Haskell 中的列表上编写递归函数

    我有以下问题 定义函数 and or Bool gt Bool 它给出了布尔值列表的合取和析取 例如 and False True False or False True True 在空列表上and gives True and or gi
  • 懒惰的 juxt 函数有什么优点吗?

    在回答中一个问题 https stackoverflow com questions 10044254 is there a reverse map function关于一个使用相同参数映射多个函数的函数 A juxt 我想出了一个基本上采
  • 任何遍历嵌套字典的函数式编程方法?

    我正在尝试找到更好的方法来实现这一点 d a b c 4 l a b c for x in l d d x print d 4 我正在学习函数式编程 所以我只是尝试随机出现的例子 Use reduce http docs python or
  • 如何使用非类型化语言中的 Reader Monad 在整个组合中隐式地线程化参数?

    我知道裸读者单子仅包含两个功能 const chain g gt f gt x gt f g x x const of x gt gt x 但我对它如何工作或如何应用没有任何直觉 知道 is 用于在整个组合中隐式地线程化参数并没有多大帮助
  • 如何在 React Native ListView 中将项目居中?

    我试图在选择一个项目时将其置于水平列表视图的中心 我当前的策略是首先测量项目并滚动到视图中引用项目的 x 坐标 目前 每当我按下某个项目时ListView滚动到最后x 538 有没有更简单的方法来实现这一点 同时保持代码无状态 功能 con
  • D 中的特征可以用于类型类吗?

    我是 D 新手 我正在寻找一种使用类似 Haskell 的类型类进行编程的好方法 例如D 中的函子 幺半群等 Tango 或 Phobos 中是否实现了类似的功能 我听说过可以对某些属性进行编译时类型检查的特征 它们可以用于类型类吗 我尝试
  • Clojure 函数 - 返回最后一条语句之前计算的值

    我有一些用 Clojure 编写的测试 这是一个简单的例子 defn test1 start server run pvt and expect PVT 0 stop server 我想返回 run pvt and expect 的结果 但
  • 如何获取数组中每个数字的阶乘值?

    我试图使用此方法获取数组中每个项目的阶乘值 但这仅输出一个值 任何人都可以帮助我找出我做错的地方吗 function mathh arr fn for i 1 i lt sizeof arr i arr2 arr2 i fn arr i r
  • 阻塞事件循环

    我正在通过 Nodeschool 参加 函数式 Javascript 研讨会 其中一项练习的标题是 阻止事件循环 我很难理解它 通过过去的练习 我确保真正尝试理解解决方案 这样如果我必须重做问题 我就会理解如何解决它 而不是第一次就破解它
  • scalaz 中的 Store 是什么

    我试图理解Lenses in scalaz 令人惊讶的是没有找到类似的东西cats core 我遇到了所谓的Store这是一个类型别名 type StoreT F A B IndexedStoreT F A A B type Indexed
  • 功能段落

    抱歉 我还不太明白 FP 我想将一系列行分割成一系列行序列 假设一个空行作为段落划分 我可以在 python 中这样做 如下所示 def get paraghraps lines paragraphs paragraph for line
  • 使用参与者模型进行基于时间的模拟

    我们有一个单线程应用程序 可以模拟数十万个对象随着时间的推移与共享内存模型的交互 显然 它无法在多 CPU 硬件上进行扩展 在阅读了一些有关基于代理的建模和函数式编程 参与者模型的内容后 我正在考虑使用消息传递范例进行重写 这个想法非常简单
  • OCaml 中的线性类型

    Rust http www rust lang org 有一个线性类型系统 有什么 好的 方法可以在 OCaml 中模拟这个吗 例如 当使用 ocaml lua 时 我想确保仅当 Lua 处于特定状态 堆栈顶部的表等 时才调用某些函数 Ed
  • OCaml:为什么重命名类型会失败并显示“它们的种类不同”

    我正在为成对的类型见证和见证类型的值构建一个通用容器 我想将其用于几种不同的类型 这会给我带来错误 因为这些类型的名称都相同 所以我尝试重命名函子结果中的类型 如下所示 module type Witness sig type a key
  • 在自己的定义中使用变量?

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

    在浏览纯函数的定义时 它通常定义有两个特征 1 给定相同的输入应该产生相同的输出 2 不应产生任何副作用 这是否也意味着纯函数不应该是异步的 如果不是 怎么会这样 如果是的话 我很想看到 JavaScript 中异步纯函数的一些示例 是的
  • 计算 python 字典/数组数据结构的非空尾叶 - 递归算法?

    我正在寻找一个函数来查找一种复杂字典 数组结构的所有非空端点 我认为因为我不知道嵌套数组的数量或它们的位置 所以它必须是递归的 而我只是还没有完全理解这种思维方式 所以对于嵌套字典 x top middle nested value nes
  • 使用 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
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t

随机推荐

  • 如何在用户打开活动时在地图上添加标记,并在用户移动时更新每个标记的实时位置?

    我的应用程序中有一个活动Map当用户从他们的设备打开此活动时 会添加一个标记来显示他们当前的位置 然后添加一个内部标记Service更新实时位置的代码所在的类 这是我的代码 mDatabase child rID addChildEvent
  • 我应该创建自己的对象模型来处理复杂的 Sharepoint 对象吗?

    我正在尝试做一些相当简单的事情 但使用 SharePoint API 似乎是一项几乎不可能完成的任务 我的 SharePoint 数据结构如下 Folder 子文件夹 项目A B项 C项 D项 由于某些奇怪的原因 您无法以您期望的分层方式访
  • Rails:预编译资产缺少节点模块

    我在rails 5 1应用程序中使用yarn 不是webpacker 只是默认的资源管道 在开发环境中运行本地服务器 我的资产没有遇到任何问题 但是一旦我预编译我的资产 环境并不重要 或让 Heroku 打包我的资产 我从我的内部导入的所有
  • 在 np.array 上应用 cv2.boundingRect

    如何申请cv2 boundingRect to a np array点 以下代码会产生错误 points np array 1 2 3 4 dtype np float32 import cv2 cv2 boundingRect point
  • 捆绑安装未从我的更新后挂钩运行

    我已经为我的项目设置了更新后挂钩 我有一个我推送到的裸存储库 var git myproject 以及一个运行我的应用程序的实时存储库 var www myproject 我还包括bundle install and bundle exec
  • 如何在 Ubuntu 的 headless chrome 中启用 WebGL?

    如何在 Ubuntu 14 的 headless chrome 中启用 webgl 或安装 webgl 我尝试安装 libosmesa6 但这没有帮助 有人可以指出我正确的方向吗 我想使用 webgl 来处理无头 chrome 和 sele
  • 从网站批量下载图像的最佳方法

    我将从网站下载大量图像 20 000 到我的服务器 并且我正在尝试找出执行此操作的最佳方法 因为有太多图像需要下载 目前我有下面的代码可用于测试 但是有更好的解决方案还是我应该使用一些软件来做到这一点 foreach products as
  • Java Scanner 输入与 if else 语句

    你好 我是java新手 正在尝试做一个测验来练习 我想提出一个问题 用户必须将类别中的单词组合成对 如A1 B4 C3 D2 我现在所做的是使用 if else 语句来检查输入是否是正确答案 但它仅适用于 1A 对于其他人 我可以做 6 个
  • Google 日历 v3 错误“请求的最短修改时间距过去太远。[410]”

    我们使用 Google Calendar v3 API 来返回自某个时间点以来已更新的用户事件列表 在 v2 API 中 设置过去的日期没有限制 如果我们将 UpdatedMin 设置为太早的日期 例如 2 个月 则会引发错误 所请求的最短
  • Google Analytics 的两个单独的脚本标签?

    有谁知道为什么 Google Analytics 需要两个单独的脚本标签 具体来说 他们的说明建议用户将以下代码片段嵌入网页中以进行跟踪
  • 使用 .NET 加密 API 进行 RSA 盲签名?

    我想实施一个RSA 盲签名 http en wikipedia org wiki Blind signature Blind RSA signatures在 NET中 有什么办法可以使用标准System Security Cryptogra
  • 是否可以将同一个 DLL 放入控制台应用程序和 NuGet 依赖项中?

    我有一个面向 NET Standard 1 5 的项目 该项目在 NuGet 上部署为多个 DLL 该项目是从 Java 移植的 项目内部的一些类是静态的Main 应该从命令行运行的方法 在 NET Core中似乎有编译DLL的2种方法 h
  • AngularJS中.save和$save到资源的区别

    我见过两者都调用的代码 save and save到角度的 resource 有什么区别以及什么时候使用 最好的解释 例子 by writing id id we want the id to be taken from id parame
  • 如果 Web 应用程序通过 Azure 应用程序服务托管,如何读取证书

    我有一个 asp net core web api app1 应用程序 它正在调用另一个 asp net core web api app2 我正在考虑将 app1 作为守护应用程序 我想使用证书而不是应用程序机密来跟踪客户端凭据 http
  • 具有多个编辑按钮的 SwiftUI 表单

    试图有一个Form有多个部分 每个部分Section与它自己的EditButton 如何触发Section进入 编辑模式 而不触发中的所有部分Form 如所附 gif 所示 如何追踪EditButton在一定的Section被触发 以便Bu
  • 快速文件读取

    如果我是对的 在 Linux 上 在C C gcc g 可以使用以下命令从常规文件中读取数据read 2 or mmap 2 系统调用 两个问题 做read系统调用的使用mmap内部 什么时候第一个比第二个快 反之亦然 如果您按顺序读取文件
  • ansible安装node.js版本6

    要安装 Node 6 x 版本 请执行以下命令 curl sL https deb nodesource com setup 6 x sudo E bash sudo apt get install y nodejs 现在我到底该如何在an
  • Terraform 有条件地应用生命周期块

    您可以有条件地将生命周期块应用到 Terraform 0 12 中的资源吗 例如 如果我想根据传递给模块的参数将此块添加到 AWS ASG 资源 lifecycle ignore changes target group arns 不 你不
  • Select2 - Ajax 搜索 - 记住最后的结果

    我正在使用 Select2 3 5 1 使用这个插件我可以成功加载远程数据 然而 我今天来这里是为了提出一个问题来改进这个搜索 以下是逐步了解我想要做什么的步骤 设置一个具有远程数据加载功能的 Select2 使用 ajax 单击 Sele
  • 为什么 OCaml 不允许函数匹配? [关闭]

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