在启动kafka broker时,我遇到了一些错误:我给出了错误日志的最后几行:
INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
[2016-05-12 01:07:01,759] INFO Log directory '/var/logs/service-bridge-logs' not found, creating it. (kafka.log.LogManager)
[2016-05-12 01:07:01,778] INFO Loading logs. (kafka
let log x = print_int x; log ;;
log 111 222;;
我期望log打印111并返回自身,然后在第二个调用中打印222,但是它不能像预期的那样工作,而是得到一个错误消息。为什么?如何使它像预期的那样工作?
我也尝试过rec,但没有结果。
File "./hello.ml", line 3, characters 8-11:
3 | log 111 222;;
^^^
Error: This expression has type int but an expression was expected of type
我对OCaml非常陌生(目前在uni上糟糕的课程),我们最近研究了递归类型。我们被告知我们使用它来创建列表,但是在OCaml中已经有列表了,所以我不太明白什么时候应该使用其中的一个。
示例 :
(* list made with a recursive type : *)
type int_list =
| None
| Element of int * int_list
(* just a list *)
let int_list2 : int list = []
在读-编译-运行管道的不同阶段,type声明和newtype声明有什么不同?
我的假设是它们被编译成相同的机器指令,唯一的区别是当程序被类型检查时,例如
type Name = String
newtype Name_ = N String
你可以在任何需要String的地方使用Name,但是如果你在需要String的地方使用Name_,那么类型检查器会把你找出来,即使它们编码的信息是相同的。
我问这个问题是因为,如果是这样的话,我看不出任何理由以下声明不应该是有效的:
type List a = Either () (a, List a)
newtype List_
我使用OptimalCutpoints包来确定不平衡二分类问题中概率预测的最佳切割点。我选择NO类作为健康类(大多数因变量是NO)。使用代码,我试图提取最佳切入点,以平衡预测的敏感性和特异性。我的问题是,我是否应该假设模型预测的概率应该大于或小于将其归类为YES的最佳切入点。然而,这可能是一个简单的问题,在我使用不同模型的数据集上,我观察到有时使用>=和其他时间使用<=会获得更好的结果。
optimal_cutpoint <- optimal.cutpoints(
X = "score",
status = "true&
我对lambda微积分很陌生,我发现语法有时对我来说很模糊。具体来说,我想知道如何理解Z组合器:
Z = λ f. (λ x. f (λ v. xxv)) (λ x. f (λ v. xxv))
如何用OCaml编写?更新:这样写时我会出错:
fun f-> let g = fun x -> f(fun v-> x x v)in g g;;
错误:该表达式的类型为'a -> 'b -> 'c,但表达式的类型为'a类型变量'a发生在'a -> 'b -> 'c‘中。
可变结构容易出错;当dictionary[0].Inflate(1,1)是矩形时,T的行为与array[0].Inflate(1,1)不同(因为array[0]是变量,而dictionary[0]是值)。
如果我为SomeClass定制了一个索引器
public T this[int x, int y] { get { return arr[y*100+x]; } }
someclass[x,y]是变量还是值,还是两者都不是?当然,假定T是struct。
我在使用OCaml实现Chris的纯功能数据结构中的一些数据结构时,遇到了这种类型的定义:
type tree = Node of int * int * tree list;;
我不认为它需要标记,因为它不是一个联合类型,所以我尝试删除这个标记,但是我得到了以下错误:
# type tree = int * int * tree list;;
Characters 5-33:
type tree = int * int * tree list;;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: The type abbreviation tree is
在Haskell上下文中解释Y组合器时,通常会注意到,直进实现不会在Haskell中进行类型检查,因为它是递归类型的。
例如,来自罗塞塔科德:
使用Haskell中Y组合器的明显定义是因为它包含无限递归类型(a =a -> b)。定义数据类型(Mu)允许中断这种递归。
newtype Mu a = Roll { unroll :: Mu a -> a }
fix :: (a -> a) -> a
fix = \f -> (\x -> f (unroll x x)) $ Roll (\x -> f (unroll x x))
事实上,“显而易见”的定义
我一直在寻找解决办法,但找不到我要找的东西。我有这个表单,一旦任何字段被触及,我就想在ngOnInit中提供一条消息。到目前为止,如果我在任何字段中输入一个值,我可以显示一条消息(“您输入了一个值”),但是当用户接触到该字段时,我希望能够显示消息。谁能给我指明正确的方向?这是我的密码。
提前谢了!
ngOnInit() {
this.myForm.valueChanges.subscribe(res => {
console.log("You entered a value");
// Here I want to show a message ("A
所以我有Gitem类型
type Gitem =
|Weapon of Weapon
|Bomb of Bomb
|Monster of Monster
|Armour of Armour
|Potion of Potion
|None
这是用来在一个记录中存储不同类型的对象,明确地说,我遇到问题的类型如下:
type Monster={
name:string;
dVal:float;
dType:DamType;
hVal:float;
info:string;
dInfo:string;
有没有人能解释为什么这两个代码都能很好地编译:
data A a b = A { a :: a, b :: b }
newtype B a = B (A a (B a))
newtype C = C (A Int C)
但是我不能通过类型同义词创建类似的递归定义的类型?
type B a = A a (B a)
type C = A Int C
尽管很明显data B a = A { a :: a, b :: B a }运行得很好。
有没有办法避免在我想要类型递归的地方处理额外的构造函数X?无论如何,我主要是在传递挑选b的访问器函数,所以我基本上没问题,但是如果有一种简单的规避机制,我想知道它
在Haskell中,您可以执行以下操作:
Prelude> data Foo = Foo Bar; data Bar = Bar Foo
如何在OCaml中做同样的事情?我试过:
___
# type foo = Foo of bar;; type bar = Bar of foo;;
Error: Unbound type constructor bar
在OCaml中甚至可以定义相互递归的数据类型吗?如果不是,那为什么?
比较数据定义以让表达式:相互递归的数据类型对应于使用let rec (或者更合适的是type rec,因为缺少更好的短语)。
我使用ELKI对我的数据进行集群,我每次运行java代码时都使用了KMeansLloyd<NumberVector> with k=3,我得到了完全不同的集群结果,这是正常的还是我应该做些什么来使输出接近稳定呢?这里是我从elki教程中得到的代码
DatabaseConnection dbc = new ArrayAdapterDatabaseConnection(a);
// Create a database (which may contain multiple relations!)
Database db = new StaticArrayDatabase