什么是“无点”风格(在函数式编程中)?

2023-11-27

我最近注意到的一个短语是“无点”风格的概念......

首先,有this问题,以及还有这个.

然后,我发现here他们提到“另一个可能值得讨论的话题是作者对无点风格的厌恶。”

什么是“无点”风格?有人可以给出简洁的解释吗?它与“自动”柯里化有关吗?

为了了解我的水平 - 我一直在自学Scheme,并编写了一个简单的Scheme解释器......我理解什么是“隐式”柯里化,但我不知道任何Haskell或ML。


只要看看维基百科文章得到你的定义:

隐性编程(无点编程)是一种编程范例,其中函数定义不包含有关其参数的信息,使用组合器和函数组合[...]而不是变量。

哈斯克尔示例:

常规(您明确指定参数):

sum (x:xs) = x + (sum xs)
sum [] = 0

无点(sum没有任何明确的参数 - 它只是与+从 0 开始):

 sum = foldr (+) 0

或者更简单:而不是g(x) = f(x),你可以写g = f.

所以是的:它与柯里化(或函数组合等操作)密切相关。

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

什么是“无点”风格(在函数式编程中)? 的相关文章

  • 函数式 GUI 编程可能吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近发现了 FP bug 试图学习 Haskell 到目前为止所看到的东西给我留下了深刻的印象 一流的函数 惰性求值和所有其他好处 我还不是专
  • 如何解释方案表达式 '(a 'b)

    a b 给出答案 a b 当 a 没有绑定 未加引号 时 这是如何工作的 这就是我们计算表达式时发生的情况 a b gt a b The quote 是简写quote http docs racket lang org guide quot
  • 在 F# 中组合谓词

    F 中是否有逻辑组合谓词的标准方法 例如 假设我有isCar x and isBlue x然后我想要一些能给我的东西 let isBlueCar x isCar x isBlue x 但是使用某种组合而不是调用 可能像 let isBlue
  • Haskell 将两个列表中不同索引处的元素组合起来

    对这个糟糕的标题表示歉意 我不太确定如何用语言描述它 但这就是我的意思 如果您知道更好的表达方式 请告诉我 假设我有 2 个长度相等的列表 a b c x y z 我想创建列表 a y z b x z c x y 本质上 对于 list1
  • 模拟Scheme中Python的范围

    如何在Scheme中创建连续数字的列表 在Python中创建一个从1到10的整数列表是range 1 11 方案有等效的吗 mzscheme version gives Welcome to Racket v5 2 1 Edit Per h
  • D 中的特征可以用于类型类吗?

    我是 D 新手 我正在寻找一种使用类似 Haskell 的类型类进行编程的好方法 例如D 中的函子 幺半群等 Tango 或 Phobos 中是否实现了类似的功能 我听说过可以对某些属性进行编译时类型检查的特征 它们可以用于类型类吗 我尝试
  • 如何获取数组中每个数字的阶乘值?

    我试图使用此方法获取数组中每个项目的阶乘值 但这仅输出一个值 任何人都可以帮助我找出我做错的地方吗 function mathh arr fn for i 1 i lt sizeof arr i arr2 arr2 i fn arr i r
  • 内部应用程序 - 为什么不公开所有内容?

    我是否有理由不应该在我们的 Intranet 报告应用程序中将所有内容标记为公开 公司之外的任何人都无法访问此代码 我们有大约 20 个项目 大多数都是小型且具体的 我们真的应该将事物标记为公开以外的任何东西吗 我对此有自己的想法 但我试图
  • 如何根据列表中的先前值过滤Haskell中的列表元素?

    我正在努力在 Haskell 中创建一个函数 该函数根据列表中前一个元素的条件过滤列表的数字 Example 前一个数字是 2 的倍数 myFunction 1 2 5 6 3 expected output 5 3 我知道如何申请filt
  • 与可变结构相比,不可变结构有哪些优点?

    我已经知道不变性相对于可变性的好处在于能够推理代码并引入更少的错误 尤其是在多线程代码中 不过 在创建结构时 我看不出创建一个完全不可变的结构比创建一个可变的结构有任何好处 让我们以保存一些分数的结构为例 struct ScoreKeepe
  • x 或 y:可接受的习语,还是混淆?

    我必须从可能为 None 的变量中提取值 并考虑一些默认值 我首先写了这段代码 if self maxTiles is None maxX maxY 2 2 else maxX maxY self maxTiles 然后我意识到我可以将其缩
  • 在自己的定义中使用变量?

    无限流 val ones Stream Int Stream cons 1 ones 一个值怎么可能在它自己的声明中使用呢 看起来这应该会产生编译器错误 但它确实有效 它并不总是递归定义 这实际上有效并产生 1 val a Int a 1
  • 使用map或reduce或filter,在Scheme中,计算列表中有多少个元素[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 number length 1 1 0 1 0 0 这假设返回 6 我知道如何使用长度并找到它 但我不知道如何在没有长度的情况下使用映射或过
  • 使用 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
  • Lisp 中的 (定义 (平均 ....))

    我只是在玩scheme lisp 并正在考虑如何纠正我自己的定义average 我不确定如何做一些我认为需要的事情 定义一个接受任意数量参数的过程 计算这些参数 将参数列表传递给 以将它们加在一起 有人有定义的例子吗average 我似乎对
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • 链接“let”语句时使用“and”还是“in”更好?

    我意识到这可能是一个愚蠢的问题 但是 如果我把一堆let不需要需要了解彼此价值观的语句 使用是否更好and or in 例如 以下哪一个更可取 如果有 let a foo and b bar and c baz in etc or let
  • python函数返回函数[关闭]

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

    我有一个值列表 我希望在循环期间计算每个类的元素数量 即 1 2 3 4 5 mylist 1 1 1 1 1 1 2 3 2 2 2 2 3 3 4 5 5 5 5 mydict dict for index in mylist mydi
  • 如何将 rubocop 与 Rake 集成?

    rubocop https github com bbatsov rubocop是 Ruby 的代码风格检查器 与 rubocop 类似的工具 Cane 可以与 Rake 集成 https github com square cane in

随机推荐

  • Netty 4 中的缓冲区所有权:如何管理缓冲区生命周期?

    我一直在尝试编写一个 HTTP 客户端来同时获取多个提要 最多 1k 同时也是学习 Netty 4 的练习 我的问题是 是否有关于新 ByteBuf 基础设施如何工作的很好的解释 谁 拥有 它们 它们如何共享 是吗 ChannelPipel
  • 如何设置热图中的中心颜色

    我想在seaborn 中绘制热图 我的代码如下 plt rcParams font size 13 plt rcParams font weight bold my dpi 96 fig ax plt subplots figsize 80
  • C# 代表现实世界的用法 [重复]

    这个问题在这里已经有答案了 我之前问过一个关于委托的问题 是否有人有一个必须使用委托的场景 这如何改进我的 C 代码 正如我使用它的许多场景一样 我似乎总是能够围绕它进行编程 每当您使用策略模式或者观察者模式 委托使您的工作比使用接口更容易
  • 在没有 Apple Developer Program (Xcode 7) 的情况下在 iOS 上安装应用程序

    6 月 8 日 Apple 宣布通过 Xcode 7 每个人都可以在自己的设备上安装他们开发的任何应用程序 而无需 Apple 开发者计划证书 Apple 开发者网站称您只需使用 Apple ID 登录即可 我已经在 Xcode 上做到了这
  • GroupMe 如何验证我的号码?

    我正在开发一个 iPhone 应用程序 我需要用户的电话号码 根据我读到的内容 例如这里 在 iOS 中以编程方式获取自己的电话号码 设备的电话号码在您的应用程序容器中不可用 我总是让用户输入他或她自己的号码 但是 当我前几天加入 Grou
  • OpenCL 中零拷贝的访问路径

    我对零拷贝到底是如何工作的有点困惑 1 想要确认以下内容对应于opencl中的零复制 CPU SYSTEM RAM c3 X lt gt PCI E c2 X PCI E CPU directly accessing GPU memory
  • Heroku:如何部署客户端和服务器在不同端口上运行的节点应用程序?

    我有一个 Nodejs API 作为服务器 React Redux 应用程序作为客户端 位于一个 git 项目中 https github com lafisrap fcc nightlife git 我想使用 heroku cli 将其部
  • 非静态方法需要一个目标

    我有一个控制器操作 可以在本地和生产中的 Firefox 以及本地 IE 上正常工作 但不能在生产中的 IE 上工作 这是我的控制器操作 public ActionResult MNPurchase CalculationViewModel
  • maven 使用 --add-exports 运行和构建

    我尝试在 Win 10 计算机上使用 InteliJ 和 Maven 运行我的应用程序 如果我跑 mvn clean javafx run 我的 GUI 启动 但如果我使用 org controlsfx control textfield
  • 如何使用 gson/retrofit 获取对象数组?

    我之前用过gson自动转换为pojo的 但现在我尝试使用改造将 api 结果转换为对象 只要 json 具有命名对象数组 就没有问题 e g items name foo name bar public class AnItem Strin
  • R 闪亮的 DataTables ColVis 行为

    我得到了一个带有 DataTables 的 RStudio Shiny 服务器页面 并且我得到了 TableTools 和 ColReorder 在下面的示例中工作 但是 ColVis Show hide columns按钮 的行为方式与示
  • 永远的单子是如何工作的?

    永远的单子是如何工作的 forever Monad m gt m a gt m b forever a a gt gt forever a 如果我写 main forever putStrLn SAD I DON T UNDERSTAND
  • NSMutableAttributedString 的属性 NSStrikethroughStyleAttributeName 在 iOS8 中无法正常工作

    我有一个没有 NSStrikethroughStyleAttributeName 属性的可变属性字符串 如下所示 NSMutableAttributedString str1 NSMutableAttributedString alloc
  • 如何防止实体重叠?

    我正在尝试使用 RealityKit 创建 AR 体验 但我发现默认情况下 实体在通过用户交互移动时会相互移动并重叠 我想防止对象重叠并相互进入 这样当用户移动它们时 它们只是撞击 弹开而不会重叠 我从 RealityComposer 文件
  • 如何检查日期对象是否等于昨天?

    现在我正在使用这段代码 Calendar cal Calendar getInstance SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd cal set cal get Calen
  • Visual Studio 2012 表示网站项目的项目文件是在环境之外编辑的

    安装 Visual Studio 2012 并从包含两个 网站 类型项目的 Team Foundation Server 打开 升级 Visual Studio 2010 解决方案后 我不断收到消息 项目 网站 已在环境外部修改 并且可以选
  • 使用QQmlListProperty在Qml中显示和修改QList

    再次 我有一个问题 也许是一个问题 我在qt5中使用qt和qml制作一个程序 并使用qtquick 2 0制作qml 我有一个C 模型qlist 我需要在运行时修改列表 我使用q QQmlListProperty 并显示 qml 中的项目
  • 是否有对 linq where 表达式的 ODATA 查询(ODATA 到 Linq )

    基本上 我想转换 odata 查询表达式 filter itemID eq 1 to 其中 w gt w itemID 1 是否有现成的库可以执行此操作 否则 我需要使用 DynamicLinq 类和 linqKit 对其进行编码 我使用
  • 如何在 JavaScript 中使用 Curl

    我正在编写一个 chrome 扩展程序 我想使用 Curl 来获取 gmail 附件的下载链接 我该怎么做呢 我是curl新手 我不知道如何在javascript中使用curl库 您不能直接在 Javascript 中使用 cURL 不过你
  • 什么是“无点”风格(在函数式编程中)?

    我最近注意到的一个短语是 无点 风格的概念 首先 有this问题 以及还有这个 然后 我发现here他们提到 另一个可能值得讨论的话题是作者对无点风格的厌恶 什么是 无点 风格 有人可以给出简洁的解释吗 它与 自动 柯里化有关吗 为了了解我