特别是,如果我说
rdd3 = rdd1.join(rdd2)
Run Code Online (Sandbox Code Playgroud)
然后当我打电话时rdd3.collect,根据Partitioner使用情况,要么在节点分区之间移动数据,要么在每个分区上本地完成连接(或者,就我所知,完全不同的东西).这取决于RDD论文所谓的"狭义"和"广泛"依赖关系,但谁知道优化器在实践中有多好.
无论如何,我可以从跟踪输出中收集实际发生的事情,但是打电话会很好rdd3.explain.
这样的事情存在吗?
所以我喜欢Haskell,但我对Num课程不满意.所以我想为代数类型创建自己的类型类层次结构.
问题是,即使我导入Prelude隐藏Num以及与之相关的所有内容,仍然使文字1具有类型t的唯一方法是使t实例为Num.
我很乐意从整个班级制作自己的东西,并将Num完全排除在外,就像这样
import Prelude hiding (everything having to do with Num)
import qualified Prelude (everything having to do with Num)
class (Eq fi) => FromInteger fi where
fromInteger :: Integral -> fi
foo :: (FromInteger fi) => fi -> String
foo 1 = "that was a one"
foo 0 = "that was a zero"
foo n = "that was neither zero nor one"
Run Code Online (Sandbox Code Playgroud)
然后我会适当地为整个类型实现fromInteger,而不必对Num说任何话.
有没有办法告诉解析器使用不同的fromInteger方法?
谢谢!
我试图制作一些Haskell类型,这些类型不是由类型参数化,而是由类型的元素,特别是整数.例如,R ^ 2中的(线性代数)矢量和R ^ 3中的矢量是不同类型的对象.具体来说,我正在Haskell中编写一个KD树,我想通过一个正整数对我的数据结构进行参数化,因此三维树和四维树具有不同的类型.
我试图通过元组对我的树进行参数化,但它似乎没有去任何地方(并且似乎有点不太可能推进,特别是因为它似乎不是三元组或更大的甚至是仿函数(和我不知道怎么说,例如HomogeneousTuple a => Functor a).我想做这样的事情:
data (TupleOfDoubles a) => KDTree a b = ... ---so in a 3DTree a is (Double,Double,Double)
Run Code Online (Sandbox Code Playgroud)
这将是不错的,或类似的东西同样好
data KDTree Int a = ... -- The Int is k, so KDTree has kind Int -> * -> *
Run Code Online (Sandbox Code Playgroud)
有谁知道这些影响是否可行或合理?
谢谢 - 约瑟夫
我正在尝试用Java编写DagNode类,其中两个节点在逻辑上是相等的,如果它们等于作为引用.
C++中的想法 - (我来自C++) - 将使用智能指针和引用计数:
创建节点时,如果该节点已存在,我将在某个表中查找.如果是这样,我会返回指向旧指针的指针.否则,请创建一个新节点.
重载构造函数和析构函数等重载的C++方法将执行引用计数,当节点的引用计数降为0时,该节点将从上述表中逐出.(C++也将释放内存.)
但是,似乎没有办法在Java中自动进行ref-counting.我需要做裁判计数知道何时驱逐从表中的一个节点(以便它可以被垃圾收集),我真的想避免调用node->incRef(),并node->decRef()在每个函数的开始和结束.
我们如何在Java中使用这个C++习语?
Lisp中的列表原语的opperator长度定义如下:
(define (length lst)
(if (null? lst) 0 (+ 1 (length (cdr lst)))))
Run Code Online (Sandbox Code Playgroud)
为什么一些Lisp的实现者不能使长度成为在恒定时间内计算的原语?
谢谢
假设我有以下设置
module type FOO = sig type f val do_foo : f end
module type BAR = sig type b val do_bar : b end
module type FOOANDBAR =
sig
include FOO
include BAR
end
Run Code Online (Sandbox Code Playgroud)
现在我想(以一种很好的方式,也就是说,没有复制界面,因此FOO和BAR仍然是子类型)强制执行类型f和类型b相同的限制.
有没有一种很好的方法在OCaml中执行此操作,可能使用include关键字的一些不同方法?
谢谢!!-约瑟夫