>>650
1秒かからず気づいた俺は天才?


ところで、Javaしかできない低脳初級プログラマなんだけど
『高階関数』について、よくわからないんだ

引数に関数を利用するのが高階関数って考えるのは簡単なことだけど、
例えばJavaだって、引数にメソッドを利用することは可能だよね

class A {
  private int value ;   //属性
  public int getNum() { //メソッド1
    return 100;
  }
  public void setValue( int i ) { //メソッド2
    value = i ;
  }
  public static void main( String args[] ) { //mainメソッド
    setValue( getNum() ) ;
    System.out.println( value ) ;
  }
}

でも、Javaには高階関数なんてないわけだよね?
上に書いたclassAは、setValue( int i )の定義で、引数の中にメソッドを入れることは不可能
それと違ってHaskellは、関数の定義(型の宣言)で引数に関数を入れれる

これが高階関数?

でも結局のところ、Haskellの関数は値になるわけだから、
Javaのメソッドの引数に、メソッド入れるのと何が違うのよって・・・(???)