问题标签 [pointfree]
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.
haskell - 试图免费写一个功能点,GHCI不赞成
作为一个练习,我试图手动实现前奏中有趣的部分。每当我发现有机会免费得分时,我都会抓住它。然而,这让我在最不可能的地方找到了一堵砖墙。使用此代码:
我正在尝试实施notElem
. 这是我的尝试:
由于类型不匹配而爆炸是可以理解的。这很容易解决:
然而,参数 x 和 y 的显式声明感觉丑陋且不必要,所以我尝试将其恢复为无点样式。
哪个失败了
很公平,类型仍然不匹配。但是你如何解决它?再次,您可以直接跳转到
哪个有效,但似乎危险地接近于绕圈子。我发现可以消除其中一个论点:
但是那个讨厌的 x 仍然存在。我该如何消除它?
haskell - 以无点风格编写函数的一般方案是什么?
目前我正在完成20 个中级 Haskell 练习,这是一个非常有趣的练习。Functor
它涉及实现类型类和Monad
(以及将Functor
s 和s 作为参数的函数)的各种实例,Monad
但使用可爱的名称,例如Furry
andMisty
来掩饰我们正在做的事情(产生一些有趣的代码)。
我一直在尝试以无点的方式来做这件事,我想知道是否有一个通用的方案可以将有点(?)定义变成无点定义。例如,这是 的类型类Misty
:
(功能unicorn
和banana
是return
和>>=
,以防不明显)这是我的apple
(相当于flip ap
)的实现:
练习的后面部分让你实现版本liftM
等liftM2
。这是我的解决方案:
现在,banana1
(相当于liftM
或fmap
)我能够通过合适的定义以无点风格实现appleTurnover
. 但是对于其他三个函数,我不得不使用参数。
我的问题是:是否有将此类定义转换为无点定义的方法?
haskell - 以无点风格写作 fx = gxx
我正在学习 Haskell。很抱歉问了一个非常基本的问题,但我似乎找不到答案。我有一个由 f 定义的函数:
其中 g 是已定义的 2 个参数的函数。我如何编写这种无点风格?编辑:不使用 lambda 表达式。
谢谢
python - Python中的Pointfree函数组合
我有一些谓词,例如:
并希望在逻辑上将它们组合为:
现在的问题是:这样的组合可以写成无点风格,例如:
这当然不是预期的效果,因为 lambda 函数的真值是True
并且是短路运算符。我想出的最接近的事情是定义一个类,它是一个简单的谓词容器,它实现并具有方法并组合谓词。的定义如下:and
or
P
__call__()
and_()
or_()
P
现在P
我可以创建一个新的谓词,它是这样的谓词组合:
相当于上面的 lambda 函数。这更接近我想要的,但它也不是无点的(这些点现在是谓词本身而不是它们的参数)。现在第二个问题是:有没有更好或更短的方法(可能没有括号和点)在 Python 中组合谓词,而不是使用类似P
和不使用 (lambda) 函数的类?
f# - 写f#序列表达式point free
我正在学习免费写作,事情进展顺利,直到我遇到这个:
还有这个:
我不知道如何通过序列构建器......这甚至可能吗?
我需要确保 usings 仍然可以正常工作。
仅供参考:我知道在这里使用无点编程似乎毫无意义。只要明白这对我来说是一个学习练习。
更新:这是我对第二个功能的第一次尝试。我不得不删除序列引用:
haskell - 模板 Haskell 中的无点样式
考虑以下模板 Haskell 函数:
是否可以从等式右侧消除 lambda 表达式并composeQ
使用无点样式编写?
haskell - 可变参数撰写功能?
我正在尝试编写一个可变参数函数组合函数。这基本上是(.)
除了第二个参数函数是可变的。这应该允许如下表达式:
要不就
目前,如果我添加IncoherentInstances
并需要第一个参数函数的非多态实例,我已经达到的效果。
有任何想法吗?甚至可能吗?
haskell - Haskell 中的列表连接
我想要一个函数,它接受两个任意类型的列表并返回一个(即f:: [[a]] -> [[a]] -> [[a]]
)。基本上,也产生两个输入列表的“连接”。
例如
我目前已经做到了这一点:
但这没有考虑到xss
,而且是错误的。有什么建议么?
haskell - 使用函数 a → b 作为“一元”函数 a → mb
我目前正在玩 Haskell 基础知识,偶然发现了以下“用例”:
所以我基本上在这里混合了单子函数和纯函数并将它们组合成单子函数。这行得通,但在我看来,这return . (*10)
似乎是一个常用的东西,所以我很想为它定义一个简写,比如monadify = (return.)
.
不过,在我这样做之前,我想问一下是否已经有帮助者来处理这种情况。当然,我也可能对整个事情感到困惑,并且有理由不应该这样做。如果是这样,请告诉我。
scala - 在 Scala 中从 CSV 生成案例类
我收到了来自服务的 CSV 响应,我想生成一个案例类列表。例如:
现在我有一个Array[String]
. 我想把那个大数组分解成 3 个元素卡盘,这样我就可以生成我List[MyCaseClass]
的 ,每个实例从数组中获取 3 个元素。有没有类似的方法splitAt
,但每 n 个元素吐一次?我确信我可以做到这一点,但它只是不来找我。