Haskell 中的 S 组合器

2024-02-13

可以模拟一下S组合器 https://en.wikipedia.org/wiki/SKI_combinator_calculus仅使用标准函数(不通过方程定义)并且不使用 lambda (匿名函数)在 Haskell 中表达?我希望它能按类型(a -> b -> c) -> (a -> b) -> a -> c.

例如,类似的K组合器只是const.

事实上我正在尝试表达这个功能\f x -> f x x使用标准函数,但无法想到任何标准非线性函数(即多次使用其参数的函数)。


s = (<*>)为了((->) r) Applicative http://hackage.haskell.org/package/base-4.7.0.0/docs/Control-Applicative.html实例。

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

Haskell 中的 S 组合器 的相关文章

  • 我是否应该使用 GHC Haskell 扩展?

    当我学习 Haskell 时 我发现有很多语言扩展 http haskell org ghc docs latest html users guide ghc language features html在现实生活中使用的代码 作为初学者
  • yesod——密码保护临时站点

    我正在尝试设置 yesod 网络服务器的临时实例 我想知道是否有一些简单的方法可以使整个站点受到密码保护 具体来说 我希望能够提示那些导航到我的网站的人提供凭据 经过身份验证后 它应该像典型站点一样运行 但如果他们无法验证自己的身份 他们就
  • 为什么 GeneralizedNewtypeDeriving 没有安全的 Haskell?

    来自 GHC 手册 第安全语言 http www haskell org ghc docs 7 6 2 html users guide safe haskell html safe language 模块边界控制 使用安全语言编译的 Ha
  • 无法通过 cabal 安装“System.Random”

    我尝试通过 Cabal 通过 Powershell 和 Git Bash 安装 System Random 得到这个结果 PS C Users xxx gt cabal install random Resolving dependenci
  • Haskell,范围缩小到无步骤[重复]

    这个问题在这里已经有答案了 为什么在 Haskell 中工作范围不能降低到没有步骤 7 1 gt 但只工作这个 7 6 1 gt 7 6 5 4 3 2 1 Haskell 无法知道您想要执行 1 除非您给出提示 在某些情况下 您可能需要一
  • 表达式“ap zip tail”如何工作

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

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • Haskell 中的常量变量声明

    要声明常量变量 我可以在 Ruby 中执行以下操作 class COLOR RED 10 BLUE 20 GREEM 30 end COLOR RED回报10 COLOR BLUE回报20 等等 我如何在 Haskell 中实现这一点 我想
  • 谁能解释一下 GHC 对 IO 的定义吗?

    标题非常自我描述 但有一个部分引起了我的注意 newtype IO a IO State RealWorld gt State RealWorld a 剥离newtype 我们得到 State RealWorld gt State Real
  • 处理许多不相关的类型时避免样板

    我正在编写处理以下值的代码语言 扩展 注释 语法 http hackage haskell org packages archive haskell src exts 1 1 4 doc html Language Haskell Exts
  • Haskell 中的相互递归求值器

    Update 我已经添加一个答案 https stackoverflow com questions 3524485 mutually recursive evaluator in haskell 4504200 4504200这描述了我的
  • 如何组合过滤条件

    过滤器类函数接受一个条件 a gt Bool 并在过滤时应用它 当您有多个条件时 使用过滤器的最佳方法是什么 使用了应用函数 liftA2 而不是 liftM2 因为出于某种原因我不明白 liftM2 在纯代码中如何工作 liftM2 组合
  • 带有查询参数的渲染 url

    无法找到简单问题的解决方案 答案应该是显而易见的 如何在 hamlet 模板中使用查询参数渲染 url I e ItemsR 将生成http localhost 3000 items我如何生成类似的东西http localhost 3000
  • 我应该使用什么递归方案来重复有效的操作,直到其结果符合某些标准?

    也就是说 我要问的是一个循环 effectful Int gt IO Int effectful n do putStrLn Effect show n return n condition 3 final Int gt IO final
  • 为什么 exceptT 没有 MonadMask 实例?

    爱德华 克梅特例外情况图书馆不提供单子掩码 https www stackage org haddock lts 7 18 exceptions 0 8 3 Control Monad Catch html t MonadMask实例为Ex
  • 有没有办法在 Emacs 中使用 Djinn 自动生成 Haskell 代码?

    标题几乎说明了一切 我正在寻找这样的东西 f Int gt Bool gt Int f body Djinn 可以使用定理证明来通过证明该类型存在来生成此类函数的代码 我想知道 是否有现有的方法可以从 Emacs 中获取此功能 因此 我不需
  • 嵌套在其他 monad 中的 IO 操作未执行

    我有一个 foobar IO ParseResult String String ParseResult 是一个在这里定义的 monad https hackage haskell org package haskell src exts
  • Haskell 中的类型化抽象语法和 DSL 设计

    我正在 Haskell 中设计 DSL 我想要进行赋值操作 像这样的东西 下面的代码只是为了在有限的上下文中解释我的问题 我没有类型检查 Stmt 类型 data Stmt forall a Assign String Exp a Assi
  • 简单的秒差距示例会产生类型错误

    我正在尝试编译这个简单的秒差距代码 import Text Parsec simple letter 但我不断收到此错误 No instance for Stream s0 m0 Char arising from a use of let
  • 如何使用 Haskell 提交 html 表单

    我知道如何使用http 管道 http hackage haskell org package http conduit 2 1 0包的 simplehttp 从 URL 检索页面 现在如果那样的话怎么办 网页有一个输入文本字段和一个提交按

随机推荐

  • Cassandra中删除表或截断表哪个更好

    我们有一个用例 我们需要每天使用 Cassandra 中的当前数据重新创建一个表 为此 我们应该使用 drop table 还是 truncate table 哪个会更有效率 我们不希望数据被备份等 谢谢 安库尔 我认为对于几乎所有情况 截
  • Windows 8 Phone 客户端证书 HTTPS 身份验证

    我正在尝试使用我正在开发的 Windows 8 Phone 应用程序中的客户端证书访问安全的 HTTPS 服务器 这根本不起作用 这让我尝试从标准 Web 浏览器访问 HTTPS 服务器 但它也不起作用 我不知道 Internet Expl
  • 从 SonarQube 删除项目

    有谁知道如何从 SonarQube 服务器删除项目 谢谢 罗南 您有 2 种方法可以删除项目 如果您是项目的管理员 则可以从其配置操作中将其删除 gt 参见 项目管理 文档页面中的 删除项目 https docs sonarqube org
  • 如何从 SQL Server 中的 TOP 中排除 LEFT JOINed 表?

    假设我有两个书籍表和两个对应版本的表 我有一个查询如下 SELECT TOP 10 FROM SELECT hbID hbTitle hbPublisherID hbPublishDate hbedID hbedDate FROM hard
  • Typescript 和 React 组件接受 TextArea 和 Input 的 onChange

    我是打字稿新手 我正在尝试创建一个输入组件 如果它收到type text 它呈现一个input如果它收到type textarea 它呈现 你明白了 一个textarea 问题是 当我在代码中使用该组件时 打字稿会抱怨onChange 似乎
  • 与我的自定义 Streambuf 类一起使用时,istream::tellg() 返回 -1?

    我正在尝试创建一个istream直接从原始内存缓冲区读取 我在这里的另一篇文章中找到了一个很好的方法 class membuf public basic streambuf
  • 在 C 中编码多管道

    我正在尝试在 C 中为我的 shell 实现多管道 我所拥有的只是一个管道函数 用于管道 b 但不是 a 乙 C int c 2 int returnv pid t id pipe c pid fork 0 if pid dup2 c 1
  • 从 werkzeug 导入安全导入 werkzeug VS

    我目前的理解 基于这些答案 one https stackoverflow com questions 9439480 from import vs import two https stackoverflow com questions
  • 我需要在 PHP 中转义反斜杠吗?

    我需要在 PHP 中转义反斜杠吗 echo Application Models User Prints Application Models User echo Application Models User Same output ec
  • 如何在nhibernate中进行子查询?

    我需要对子集合执行子查询 但无法让它工作 我试过这个 Task tAlias null List
  • 我们如何在 Grails 中迁移/更新数据库架构?

    我们使用 Grails 已经有一段时间了 我的团队负责人提出了一些关于 Grails ORM GORM 的问题 一旦我们进入生产环境 我们如何维护数据库模式 我们可以使用 Grails 更新数据库架构吗 如果更新架构 更改是否会自动反映 框
  • 如何判断我的 IE 是否是 64 位? (就此而言,Java 也是如此吗?)

    网络上已经有数以百万计的问题涉及如何判断操作系统是否是 64 位 但不知道 IE 和 或 Java 运行时是否是 64 位 一些背景 我安装了 64 位 Win 7 IE 会自动从 CD 中安装 我没有下载IE 我确实下载了Java运行时
  • 我们如何在 Comparator.comparing 中传递变量字段/方法名称

    我有一个Report String name Date date int score 班级 我希望能够使用新的 java 8 语法对任何成员变量的报告列表进行排序 所以java 8提供了这个新的 list sort Comparator c
  • Android studio 虚拟设备未加载

    我有 4GB 内存 android studio 虚拟设备显示 ANDROID 所以加载是无限的 它没有结束 我已经等太久了 可能是什么问题 无论我使用什么应用程序 您尝试过使用 Genymotion 吗 它比普通虚拟设备好数百倍 这里有一
  • Ruby - 将目录添加到 $LOAD_PATH - 它有什么作用?

    这实际上是关于这个问题的一个问题 将目录添加到 LOAD PATH Ruby https stackoverflow com questions 837123 adding a directory to load path ruby 将目录
  • 使用 gulp 创建 tar 档案

    我正在使用 gulp tar 创建一个 tar 文件 如何添加顶级文件夹 以便当用户运行时tar xzf myArchive tar它解压到特定的文件夹中 这是我的代码 gulp task prod min gittag function
  • div 向下滑动时自动聚焦在输入字段上

    我有一个隐藏的div 单击按钮时 div 会向下滑动并带有输入字段 如何让这个输入框在 div 向下滑动时自动对焦 谢谢
  • sphinx autodoc包含子功能

    我想在 sphinx 文档中自动包含函数的子函数 有什么选择呢 我的代码看起来像 import numpy def mainfunc to be documented def subfunc to be documented as well
  • PCRE pcre_exec 线程安全吗?

    我有一个 C 程序 它使用 PCRE 正则表达式来确定 cgroup 中的进程是否应添加到一个变量或另一个变量 我生成一个线程来读取每个正在运行的 cgroup 中的 cpuacct stat 文件 其中线程数从未超过核心数 然后将这些样本
  • Haskell 中的 S 组合器

    可以模拟一下S组合器 https en wikipedia org wiki SKI combinator calculus仅使用标准函数 不通过方程定义 并且不使用 lambda 匿名函数 在 Haskell 中表达 我希望它能按类型 a