PolyML 函数和类型

2024-05-24

[...] 一对函数tofun : int -> ('a -> 'a) and fromfun : ('a -> 'a) -> int这样(fromfun o tofun) n评估为n对于每一个n : int.

任何人都可以向我解释这实际上要求什么?我正在寻找更多对此的解释,而不是实际的解决方案。


这要求的是:

1)高阶函数tofun当给定一个整数时,它返回一个多态函数,该函数具有类型'a->'a,这意味着它可以应用于任何类型的值,返回相同类型的值。这种函数的一个例子是:

- fun id x = x;
val id = fn : 'a -> 'a

例如,id "cat" = "cat" and id () = ()。后面的值是unit类型,是只有1个值的类型。请注意,总共只有 1 个函数unit to unit(即,id或同等的东西)。这强调了提出定义的难度tofun:它返回一个类型的函数'a -> 'a,除了恒等函数之外很难想到其他函数。另一方面——此类函数可能无法终止或可能引发错误但仍然具有类型'a -> 'a.

2) fromfun应该采用类型的函数'a ->'a并返回一个整数。所以例如fromfun id可能评估为 0 (或者如果你想变得棘手,它可能永远不会终止,或者可能会引发错误)

3)这些应该是彼此相反的,因此,例如fromfun (tofun 5)需要评估为5。

直觉上,这在足够纯粹的函数式语言中应该是不可能的。如果在 SML 中可能的话,我的猜测是,这将是通过使用 SML 的一些不纯粹的功能(允许副作用)来违反引用透明度。或者,这个技巧可能涉及引发和处理错误(这也是 SML 的一个不纯粹的功能)。如果你找到一个在 SML 中有效的答案,那么看看它是否可以被翻译成烦人的纯函数语言 Haskell 将会很有趣。我的猜测是它不会翻译。

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

PolyML 函数和类型 的相关文章

  • Python:检查对象是否是字符串列表

    如何检查一个对象是否是字符串列表 我只能检查对象是否是字符串 def checktype obj if isinstance obj str print It s a string obj1 foo bar bar black sheet
  • JavaScript 函数参数和范围

    我用下面列出的代码做了一些测试 function foo x alert y var y I am defined outside foo definition foo 上面的代码给了我一个警告 我是在 foo 定义之外定义的 然后另一个测
  • C++继承自具有相同虚函数名的多个基类

    我尝试了这段代码 class A virtual void foo 0 class B virtual void foo 0 class C public A public B virtual void A foo virtual void
  • R - 获取与用户函数中的正则表达式模式匹配的表列表

    我希望在 R 中创建一个用户函数 它合并多个使用正则表达式来查找这些表的表 在我的情况下 我想合并我的环境中以 m 开头的所有表 这正是我想要的 Reduce function merge all TRUE mget apropos m 但
  • 类型错误:在自定义 python 函数中找到预期字节、str

    我正在使用一种名为 Giggle 的新生物信息学工具 并且我已经在我的系统上安装了 python 包装器 尽管场景非常具体 但我认为问题非常普遍 这个功能 index Giggle create index HMEC hg19 BroadH
  • 表达式“ap zip tail”如何工作

    我想知道怎么写f x zip x tail x 点免费 所以我使用了pointfree程序 结果是f ap zip tail ap作为 Control Monad 的函数 我不明白点自由定义是如何工作的 如果我能从类型的角度去理解的话 希望
  • SSIS Excel 导入强制错误的列类型

    我正在尝试使用 SSIS 将电子表格导入到我们的数据库中 由于某种原因 当其中两列包含字符数据时 SSIS 希望相信它们的类型为 Double 我尝试将列重新映射为 nvarchar 255 但它仍然不想选择它认为是双精度的数据 因为其中有
  • 在 Vim 的 `autocmd` 命令中调用函数

    我想使用expand函数在一个autocmd 特别是 我正在改编tip https stackoverflow com questions 1240037 recommended build system for latex 1394702
  • 在 R 中使用整数值代替数值(例如 1L 与 1)作为常量的好处

    在 R 源代码中 大多数 但不是全部 函数使用整数值作为常量 colnames lt function x do NULL TRUE prefix col if is data frame x do NULL return names x
  • 为什么使用非十进制数据类型不划算?

    tl dr 我的怎么了Cur 货币 结构 tl dr 2 在给出示例之前 请先阅读问题的其余部分float or double 我知道这个问题在互联网上已经出现过很多次了 但是我还没有看到令人信服的答案 所以我想我会再问一次 我无法理解为什
  • 查找提供的 Sum 值的组合

    我有一系列这样的数字 myvar 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 现在我想计算所有这些可能的组合 长度为1到20 其总和等于给定的数字m
  • Clojure 中的宏和函数

    我在这个 Clojure 教程中读到了以下行 http java ociweb com mark clojure article html Macros http java ociweb com mark clojure article h
  • 为什么 C++ 对于 new 和 delete 有其单独的语法?

    为什么不能只是常规的函数调用 新本质上是 malloc sizeof Foo Foo Foo 虽然删除是 Foo Foo free 那么为什么 new delete 最终会拥有自己的语法而不是常规函数呢 这是一个尝试 The new操作员呼
  • 函数名前的星号有什么作用?

    我对在大多数具有我不熟悉的函数声明的 C 程序中看到的内容感到困惑 void func name void param 什么是 暗示该功能 我的理解 在变量类型中的特点是它创建一个指向另一个变量的指针 因此它可以跟踪后一个变量存储在内存中的
  • 为什么Python中的函数以“return 0”而不是“return”结尾? [复制]

    这个问题在这里已经有答案了 您能解释一下 return 0 和 return 之间的区别吗 例如 do 1 for i in xrange 5 do sth return 0 do 2 for i in xrange 5 do sth re
  • 为什么不允许接口作为注释成员?

    考虑这段代码 Retention RetentionPolicy RUNTIME Target ElementType METHOD public interface Bar Foo foo default FooImpl FooConst
  • 如何自定义 SML/NJ 交互循环?

    我是标准 ML 的新手 我正在尝试了解 SML NJ 运行时环境 我想根据我的需要调整它 具体来说 我想 默认使用 IntInf 防止它将字符串和 IntInf 截断为 70 个字符 以下是我在 8 个多小时的阅读文档和实验中发现的内容 我
  • 强制一个 javascript 函数等待运行,直到第一个函数完成

    下午 我遇到了一个问题 我需要运行一个函数 然后在完成后 运行下一个函数 并对四个函数执行此操作 我已经尝试了一段时间 试图找到正确的布局语法我的函数调用但似乎找不到任何东西来解决这个特定的场景 html div div div jquer
  • 为什么我的函数将布尔值更改为“on”?

    所以我是 php 编程世界的新手 我正在在线学习和其他形式等 但我找不到任何东西来帮助回答我的问题 这就是我在这里的原因 任何帮助当然不胜感激 谢谢 我想将下面的代码变成我可以调用的函数 它的工作原理如下所示 如果我选中表单中的复选框 它会
  • 如何在C中实现带连分数的自然对数?

    这里我有一个小问题 根据这个公式创建一些东西 这就是我所拥有的 但它不起作用 弗兰基 我真的不明白它应该如何工作 我尝试用一 些错误的指令对其进行编码 N 是迭代次数和分数部分 我认为它会以某种方式导致递归 但不知道如何 谢谢你的帮助 do

随机推荐

  • 何时计划 (SELECT) 查询?

    在 PostgreSQL 中 什么时候计划 SELECT 查询 Is it 在报表准备时 或者 在处理 SELECT 开始时 或者 别的东西 我问的原因是 Stackoverflow 上有一个问题 相同的查询 两种不同的方式 性能截然不同
  • 同时运行 ng build --watch 和 ngserve 时,Angular 7 库 html 模板更改不会影响应用程序

    当 Angular 7 库 html 模板更改使用 ng build library watch 和 ngserve application 在不同的 cmd 中同时运行时 不会影响 Angular 应用程序 所以我首先使用 watch 标
  • 在 C++20 中获取当前日期/时间是线程安全的吗?

    简短的问题 在 C 17 之前 包括 C 17 C 不提供线程安全的方式来获取当前时间或日期 这个问题会在 C 20 中修复吗 长问题 获取当前时间和日期的唯一可移植方法是使用 std gmtime 或 std localtime 函数 这
  • 在非输入元素上反应 onKeyDown/onKeyUp 事件

    我需要捕获 cmd 按钮向上和向下事件 以便选择是否在 setState 中使用串联 例如 我如何在表元素上获取这些事件 您必须在主体 窗口级别捕获按键 表元素没有输入焦点 因此您无法从表中捕获键 没有输入元素 var cmdDown fa
  • Shell Crontab 不工作

    GNU nano 2 0 9 文件 tmp crontab XXXXzBQgwS 5 check phpfpm sh 5 check nginx sh 5 disk clean sh 5 loadcheck sh 按理说我的代码应该每 5
  • XNA中窗口系统的渲染策略(RenderTarget性能)

    我目前正在从头开始为 XNA 游戏创建一个窗口系统 我主要针对 Windows 进行开发 但谁知道我将来可能支持哪些平台 如果您知道本机 Direct3D 的这一点 请随意回答 因为性能语义应该类似 如果可能 请考虑如果目标平台是 X Bo
  • 使用 Print 进行简单的芹菜测试不会进入终端

    EDIT 1 实际上 print语句输出到 Celery 终端 而不是运行 python 程序的终端 正如 PatrickAllen 所示 OP 我最近开始使用Celery http www celeryproject org 但甚至无法进
  • 使用 boost 线程和非静态类函数

    所以我做了一些研究 发现你可以创建一个 boost thread 对象 并通过使用 this 和 boost bind 等以非静态类函数开头 这确实没有多大意义对我来说 我能找到的所有示例都在与其启动的函数相同的类中启动了 boost th
  • 软件开发/项目中“后端”和“前端”的定义/区别是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 新手如何区分这一点 如何知道自己正在工作的是后端系统还是前端系统 前端 通常是指项目中与用户交互的部分 例如图形用户界面或命令行 这是一个模
  • 使用 urllib2 进行 Python 身份验证

    所以我尝试使用 python 从名为 vsearch cisco com 的网站下载文件 python Connects to the Cisco Server and Downloads files at the URL specifie
  • 具有多个输入的kerasvalidation_data

    我尝试使用validation data方法 但是有问题 model fit X macd train X rsi train X ema train Y train sample weight sample weight validati
  • Magento:获取给定产品的购物车数量

    我使用这个代码 items Mage getModel checkout cart gt getQuote gt getAllItems items Mage getSingleton checkout session gt getQuot
  • 如何重写复杂的C++代码行(嵌套三元运算符)

    我一直在查看别人的代码以进行调试 发现了这一点 m seedsfilter good true m seedsfilter 1 good newClusters Sp good newSeed Sp 这是什么意思 是否有一个自动化工具可以将
  • R中两个时间之间的时间差

    我正在尝试计算 R 中两个时间之间的差异 例如 两个时间之间的时间差 03 15 和 01 40 将为 1 小时 35 分钟 我在 R 中尝试了以下代码 difftime 03 15 01 40 tz units secs 但我收到以下错误
  • 如何停止覆盖数据

    我正在尝试在我的 iOS 应用程序中保存一些数据 我使用以下代码 NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask
  • Gmail API:如何在 swift 上将附件发送到草稿

    最近 我的项目添加了使用Gmail 所以我遇到了很多关于它的问题 这让我很伤心 现在 我想知道如何将图像发送到草稿 我的代码如下 func postEmailMessageRequest model MEMailMessageModel r
  • 仅对小型设备使用偏移的中心引导列

    我正在尝试在图像旁边显示文本 我希望它仅在设备宽度低于 767px 时才堆叠 否则 我希望他们肩并肩 在此堆叠过程中 图像具有响应性 因此它占据了文本上方的整行 为了避免这种情况 我尝试在列为xs时限制列的大小 这可确保图像在指定的列大小内
  • 如何在 ios 应用程序中将 .svg url 显示为图像

    我从服务器获取 svg 网址 如何在我的应用程序中将其显示为图像 我尝试在 UIWebView 中显示它 但无法调整内容图像的大小 我正在使用这个代码 let request NSURLRequest NSURLRequest url UR
  • Postgres 多重连接

    这是一个 postgres 数据库 我试图从品种表中提取狗的品种名称 卡斯罗 拉布拉多等 以根据动物表中的外键进行显示 我的问题是动物表有两个外键指向这个单一品种表 并且我的查询不断出错 第一个品种名称将根据左连接返回 但第二个品种名称无法
  • PolyML 函数和类型

    一对函数tofun int gt a gt a and fromfun a gt a gt int这样 fromfun o tofun n评估为n对于每一个n int 任何人都可以向我解释这实际上要求什么 我正在寻找更多对此的解释 而不是实