为了缩短新冠肺炎锁定的时间,我决定跳到函数式编程中去,因为我只是偶然地读到了这样一篇精彩的文章:主要是关于FP的适当指南 by @DrBoolean。我不确定我是否正确地理解了这个概念,或者代码示例是否过于简化,所以希望找到一些线索。
关于这个段落,有人说:
如果我们有两个相同类型的层,我们可以将它们与
join
一起粉碎。
在代码示例中,可能的join()
方法概述如下:
Maybe.prototype.join = function join() {
return this.isNothing() ? Maybe.of(null) : this.$value;
};
Identity
中的一个是这样的:
Identity.prototype.join = function () {
return this.$value;
}
但是,这些方法中没有一个检查是否确实存在相同类型的两个层--。我觉得应该这样做,可能是在更多的生产准备代码?或者,由于托换结构的影响,是否可以忽略这种检查?
如果只有一个层,则join()
盲目地返回它包含的值,但正如所述的这里
一旦数据进入容器,它就会留在那里。我们可以通过使用
.$value
来获得它,但这将使我们的目的落空。
底层的数据结构及其正确的用法是否阻止了值失败,或意外地粉碎了两个不同类型的层?还是必须由代码强制执行?
发布于 2021-01-07 08:27:49
也许“大部分足够”的文档中所呈现的功能更适合于教育用途,因此避免了形式上的正确性,而倾向于传递某种概念--不确定,只是猜测(我也读过它们,但不能明确地说)。
在“基本足够”指南的功能方面,在我看来,用户总是有责任正确地将它们放在一起。
(快速查看Ramda.js,我能看到的唯一join
函数是与字符串连接有关)
https://stackoverflow.com/questions/65602929
复制相似问题