java 에서 어떤 클래스를 만들어서 그걸 return 하는 method 를 만들 수 있을까요. <div>구글링 해봤는데 다들 부정적인 의견이네요.</div> <div><br></div> <div>사실 지금 자바로 뿽셔널프로그래밍을 얼마나 커버할수있는지 실험중입니다.</div> <div><br></div> <div><div>interface fOneOne<P,R> {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public R apply(P param);</div> <div>}</div></div> <div><br></div> <div>이걸로 변수하나받아서 하나 리턴하는 함수의 인터페이스를 정의했구요.</div> <div><br></div> <div><div>class plus implements fOneOne<Integer, Integer> {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public Integer apply(Integer param) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return para+1;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div></div> <div><br></div> <div>plus f = new plus()</div> <div>System.out.println(f.apply(Integer(0))) 하면 1이 잘 나옵니다.</div> <div><br></div> <div>이제 과연 함수의 합성을 만들 수 있을까라는 의문에 도달했는데요.</div> <div><br></div> <div><div>class compose<P, Q, R>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public fOneOne<P, R> apply(fOneOne<Q, R> g, fOneOne<P, Q> f) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>class h implements fOneOne<P, R> {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>public R apply(P para) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return g.apply(f.apply(para));</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return new h();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div></div> <div><br></div> <div>compose라는 함수는 P->Q 인 함수와 Q->R 인 함수를 받아서 P->R인 함수로 합성하는 함수입니다.</div> <div>근데 당연히 위처럼하면 에러가 나더군요..</div> <div>음..</div> <div>뭔가 해결책이 존재할까요</div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.