问题标签 [anamorphism]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 什么是变形,在 C# 中看起来如何?
我正试图围绕变形的概念。
在函数式编程中,变形是对列表展开概念的概括。形式上,变形是通用函数,可以核心递归地构造某种类型的结果,并由确定下一个构造步骤的函数参数化。
它的双重性,catamorphism,在这篇文章中有很好的描述:什么是 catamorphism,它可以在 C# 3.0 中实现吗?.
C# 中多变行为的一个很好的例子是 LINQ 的Aggregate方法。
什么是变形等价物?将伪随机数生成器Random视为变形构造是否正确,或者展开过程是否应该始终包含如下所示的累加器函数(取自Intro to Rx的代码片段)?
haskell - Haskell - 将玫瑰树的深度优先遍历表示为展开的实例,以代数方式推导它
假设我们定义了一个玫瑰树,以及数据类型上的相应折叠。
这种结构的深度优先遍历的递归定义将是:
我们可以将 dft 表示为 Rose Trees 上的折叠,特别是我们可以通过代数推导出这样的折叠。
我想我们可以这样做的原因是因为 foldRTree 捕获了 RTrees 上的一般递归结构,这让我想到了关于展开的查询。
我们将展开定义如下:
我们可以将深度优先遍历表示为展开如下:
我正在努力寻找一种方法来开发一种以与 cons 相同的方式代数计算函数 nht 的方法。特别是在开发展开过程中有一个巧妙的步骤,即意识到展开的最终参数需要是 [RTree a] 类型,而不仅仅是 RTree a。因此,对 dft 提出的论点并没有直接传递给展开,因此我们在推理这两个函数时遇到了障碍。
我将非常感谢任何能够提供一种数学方法来推理展开的人,这种方式可以计算所需的函数 nh 和 t 在将递归函数(自然是折叠)表示为展开(可能使用一些定律)时连接折叠和展开?)。一个自然的问题是我们必须用什么方法来证明这种关系是正确的。
haskell - 重复作为一个类同态
所以我一直在尝试将这个检查列表是否没有任何重复的 Haskell 函数转换为 Hylomorphism,但它有些奇怪。
如果有人可以提供帮助,我会很高兴!谢谢
python - Python中的变形
我尝试按照此链接对图像进行变形
https://github.com/aydal/Cylinderical-Anamorphosis/blob/master/anamorph.py
它给出了一个变形的图像,但它给出了半圆形的图像。但我想要一个完整的圆圈大小的输出。我试过了
代替warp[c-j, i-1] = img[p-1, q-1]
但它不会在整个圆圈中给出一张图像,而是两次创建相同的输出!
谁能帮帮我吗。
完整代码:
haskell - 来自 Int -> Int 的递归方案?
文件夹身份是
更一般地说,使用折叠,您可以破坏结构并最终得到一个汇总值,或者以这样一种方式注入结构,最终得到相同的输出结构。
[Int] -> [Int]
或
[Int] -> Int
或
[Int] -> ?
我想知道展开器/l 是否有类似的身份。
我知道如何获得
Int -> [Int]
与展开/安娜。
我正在寻找某种方式
Int -> Int
使用递归方案。
php - anam/phantommagick - 服务器 Oracle Linux Server 7.6 中不存在二进制文件
我正在使用 laravel 项目,我使用 anam/phantommagick 包将视图页面转换为图像,在此处输入链接描述。它在我的本地系统(Ubuntu 16.04.6 LTS)中运行良好。但是移动服务器它不起作用。
我添加了phantomjs-linux-x86-binary Dependencies 。
swift - 快速序列变形
Swift 的标准库是否包含a或类似内容的列表变形Sequence
?
列表或序列上的 Anamorphism 与reduce
函数相反。因此,它不会将序列折叠为单个值,而是构建一个序列。
reduce
接受一个初始值,以及一个用于将序列元素与 this 组合的函数,并返回一个最终值。它的签名看起来像这样(为可读性添加了换行符):
序列的变形可能是这样的:
通过给它一些初始状态,并告诉它如何把它变成一个元素和下一个状态,它可以为你建立一个序列。所以,我可以得到一个像这样的数组Array(1..<10)
:
parsing - 具有变形的 Haskell monadic 解析器
我的问题是如何将递归的 F 代数风格的递归类型定义与单子/应用风格的解析器结合起来,以适应现实的编程语言。
我刚刚从以下Expr
定义开始:
我正在尝试将它与使用变形的解析器结合起来:
据我所知,在我的示例中,psi
应该只解析一个整数,或者它应该确定字符串是 a<expr> + <expr>
然后(通过递归调用fmap (ana psi)
),它应该解析左侧和右侧表达式.
但是,(monadic/applicative)解析器不是这样工作的:
- 他们首先尝试解析左边的表达式,
+
, _- 和右手表达式
我看到的一种解决方案是更改 to 的类型定义,Plus a a
以便Plus Integer a
它反映解析过程,但这似乎不是最好的途径。
欢迎任何建议(或阅读指导)!