小编enl*_*ned的帖子

使用if定义函数时出错

我们有一个简单的函数定义:

(defn calculate [d x y]
  ((if (and (== d 1) (== x 1) (== y 0))
     1
     0)))
(println (calculate 1 1 0))
Run Code Online (Sandbox Code Playgroud)

但是这导致了这个错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke    (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to clojure.lang.IFn
    at user$calculate.invoke(main.clj:13)
    at user$eval5.invoke(main.clj:17)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.Compiler.loadFile(Compiler.java:6863)
    at clojure.main$load_script.invoke(main.clj:282)
    at clojure.main$script_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.lang.Var.invoke(Var.java:401)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
    ... 5 more …
Run Code Online (Sandbox Code Playgroud)

function clojure classcastexception

3
推荐指数
1
解决办法
1366
查看次数

在char之后用char打印字符串char

我有一个有点愚蠢的问题,因为它应该是完全简单的......

假设我有字符串:

char *str = "stackoverflow";
Run Code Online (Sandbox Code Playgroud)

我希望一次打印一个字符串,每个字符后有一些延迟:

int i = 0;
while (str[i] != '\0') {
  putchar(str[i]);
  usleep(100000);
  i++;
}
Run Code Online (Sandbox Code Playgroud)

但是,不是做明显和正确的事情,打印一个字符并等待100毫秒并再次进行,看起来延迟累积并立即吐出.
所以它快乐地睡了大约一秒半,然后打印出我的弦.

有任何想法吗?
(我在Ruby中做了完全相同的事情没有问题,也尝试使用'\ r'方法,这也适用于Ruby ...)

请帮忙!
否则我不能为我的作业执行程序,即打印字符串 ; 但我不想这么做......;)

谢谢!

c

0
推荐指数
1
解决办法
6177
查看次数

标签 统计

c ×1

classcastexception ×1

clojure ×1

function ×1