小编lia*_*ngo的帖子

解释Scala中Y组合子的这种实现?

这是Scala中Y-combinator的一个实现:

scala> def Y[T](func: (T => T) => (T => T)): (T => T) = func(Y(func))(_:T)
Y: [T](func: (T => T) => (T => T))T => T

scala> def fact = Y {
     |           f: (Int => Int) =>
     |             n: Int =>
     |               if(n <= 0) 1
     |               else n * f(n - 1)}
fact: Int => Int

scala> println(fact(5))
120
Run Code Online (Sandbox Code Playgroud)

Q1:结果120是如何逐步产生的?因为Y(func)定义为func(Y(func)),Y应该变得越来越多,Y在哪里迷失120了?在形式过程中如何出现?

Q2:有什么区别

def Y[T](func: (T => T) => (T => …
Run Code Online (Sandbox Code Playgroud)

scala combinators y-combinator

8
推荐指数
2
解决办法
1350
查看次数

任何人都可以给我一个很好的例子这种关于"什么使一个对象有状态"的情况?

我不明白这句话的意思(来自Scala-Threading/Odersky/18-stateful-objects.txt第88行):

一个类可能是有状态的,没有定义或继承任何变量,因为它将方法调用转发给具有可变状态的其他对象.

任何人都可以在Scala中给我一个很好的例子吗?

scala stateful object

4
推荐指数
1
解决办法
88
查看次数

IntelliJ IDEA:如何忽略方法层次结构中的“@see comments”javadoc?

package p;

public abstract class A { abstract void a(); }

class A1Impl extends A {

    /** @see A#a() */
    @Override void a() { } } // cursor on a() in A1Impl, ctrl+alt+h,show method hierarchy

class A2Impl extends A {

    /** @see A#a() */
    @Override void a() { } }

class Caller {

    void call(A1Impl a) {
        a.a();
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

光标在 A1Impl 中的 a() 上,ctrl+alt+h,显示方法层次结构,如何设置在选择红色框中不显示其他 2 个不相关的调用者,但不远程显示代码中的 @see ..?

java intellij-idea intellij-plugin

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

是否有一个clojure IDE可以帮助自动完成Java对象方法?

是否有一个clojure IDE可以帮助自动完成Java对象方法?

例如:

(def my-temp-file (java.io.File/createTempFile "filename" ".txt"))
Run Code Online (Sandbox Code Playgroud)

然后我想输入:

(.deleteOnExit my-temp-file)
Run Code Online (Sandbox Code Playgroud)

我怎么能够 :

(.my-temp-file delet |"cursor here");; 我怎样才能获得自动编译del*方法

要么

(.delet |"cursor here"my-temp-file);; 我怎样才能获得自动编译del*方法

...

刚才,我尝试了intellij14.1.4 + cursive0.1.60,这太棒了.

我试图自动编译从"删除"到"deleteOnExist"

情况1,这没关系: 情况1,这没关系:

情况2,这个canot工作: 情况2,这个canot工作:

如何在情境2中获得"deleteOnExist"自动完成功能?请帮忙

java emacs clojure intellij-idea cursive

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

在Java中使用反射来创建新实例?

我想反映MyRow的一个对象然后得到一个My MyTable对象,我该怎么办?

这是我的java代码:

import java.util.*;
import java.text.*;
import java.util.concurrent.*;
import java.lang.reflect.*;

class MyTable {
  private MyRows rows; 
  private List columns; 

  public List getColumns(){return this.columns;}
}

class MyRows extends ArrayList<MyRow> {//... 
}

class MyRow {
    protected MyTable table;
    private List<Object> data;

    private MyRow(MyTable p_table) {
        this.table = p_table;
       this.data = Collections.synchronizedList(new ArrayList(this.table.getColumns().size()));
    }
}

public class Test2 {
    public static void main(String args[]){
      try{
        MyTable myTable = new MyTable();        
        MyRows myRows = new MyRows();

        Constructor ctor = MyRow.class.getDeclaredConstructor(MyTable.class);
        ctor.setAccessible(true);
        MyRow myRow …
Run Code Online (Sandbox Code Playgroud)

java reflection

-2
推荐指数
1
解决办法
1908
查看次数