Javaããã°ã©ãã®ã¿ãªããã¯ãJavaã¯åæ¨è«ããªããã夿°ã®åæå®ãããªãã¦ãããªãã¦ããµãããªã©ã¨ã¤ã¸ã¡ãããçµé¨ãããã¨æãã¾ãã
ãããããã«åæ¨è«ããã ãã¨Groovyãããããããããã¨ãããã«åæ¨è«ããã ãã¨Scalaããã£ã¦ãããããã¬ã¹ããæ¬²ããã£ã¦è¨ã£ãã®ã«WiiãXboxãè²·ãæ¸¡ãããæãå³ãã£ã人ãå¤ãã®ã§ã¯ãªãã§ããããã
ãããªè¯ãåã®Javaããã°ã©ãã®ããã«ãä»å¹´ã¯ãµã³ã¿ãç´ æµãªãã¬ã¼ã³ããæã£ã¦ãã¦ããã¾ãããã
åãåãæ¸ãã®ãããµã
ãã¨ãã°ã¦ã£ã³ãã¦ãåºãã¦ãã¿ã³ãæ¼ãããã¡ãã»ã¼ã¸ã表示ããããµã³ãã«ãæ¸ãã¨ãããªæãã«ãªãã¾ããã
public static void main(String... args){ JFrame f = new JFrame("ãã¹ã"); JButton b = new JButton("æ¼ãã¦"); JTextArea ta = new JTextArea(); f.add(b, BorderLayout.NORTH); f.add(ta, BorderLayout.CENTER); b.addActionListener(ae -> ta.append("æ¼ããã\n") ); f.setSize(400, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }
åããã¨ãããªã¦ã£ã³ãã¦ãåºã¾ãã
夿°å®ç¾©ã¯ãããªæãã«ãªã£ã¦ã¾ãã
JFrame f = new JFrame("ãã¹ã"); JButton b = new JButton("æ¼ãã¦"); JTextArea ta = new JTextArea();
JFrameãJButtonãJTextAreaãï¼åãã¤åºã¦ã¦ããã£ã±ããµãã
å
¥åã¯ããããè£å®ãå¹ãã®ã§ãï¼åå
¥åããå¿
è¦ã¯ãªããã§ããã©ããªã®ã§ãï¼åå
¥åããã®ãé¢åã¨ããæ¹å¤ã¯çå¤ãã§ããè¦ãç®ãããµãã®ã§ããå人çã«ã¯ãnew JFrame("ãã¹ã");ãã¨æã£ã¦ããæ°ãã夿°ã«æ»ãå¤ãå²ãå½ã¦ãã¨ããã®ã好ã¿ã§ãã
Let's let.
ã¨ãããã¨ã§ãµã³ã¿ãããããã¬ã¼ã³ãã
ãããªã¡ã½ãã
public static<T> void let(T value, Consumer<T> cons){ cons.accept(value); }
ãã®ã¡ã½ããã使ãã¨ããã£ãã®ã³ã¼ãã¯ãããªãã¾ãã
public static void main(String[] args) { let(new JFrame("ãã¹ã"), f -> let(new JButton("æ¼ãã¦"), b-> let(new JTextArea(), ta ->{ f.add(b, BorderLayout.NORTH); f.add(ta, BorderLayout.CENTER); b.addActionListener(ae -> ta.append("æ¼ããã\n") ); f.setSize(400, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }))); }
夿°ã®åæå®ããªããªãã¾ããï¼
ããã§ããã¾ããã¡åæ¨è«ããªãã¨ãè¨ã£ã¦ã¤ã¸ã¡ããããã¨ã¯ãªããªãã¾ããï¼
æ»ãå¤ãå¿ è¦ãªå ´å
ã¨ããã§ãå
ã»ã©ã®letã§ã¯ãå¤ãå¿
è¦ã«ãªãå ´åã«å¯¾å¿ã§ãã¾ããã
ã¨ãããã¨ã§ãå¤ãè¿ãçã¨ãã¦letRãå®ç¾©ãã¾ãã
static<T, R> R letR(T value, Function<T, R> func){ return func.apply(value); }
ããããã¨ããããªæãã§å¹³æ¹æ ¹ã®è¨ç®ãã§ãã¾ãã
System.out.println( letR(2, target -> DoubleStream.iterate(target, x -> letR(x * x - target, num -> letR(2 * x, den -> x - num / den ))) .skip(5).findFirst().orElse(0) ) );
çµæã¯ãããªæãã«ã
1.4142135623730951
ããç´ æµãªã®ã¯ãå¼ã®éä¸ã§å¤æ°ã使ãããã¨ã§ããã
颿°åã£ã½ãã§ãã
å¼ã®å
容ã«ã¤ãã¦ã¯ããããã¸ããåèã«ãªããã¨ã
BigDecimalで平方根を求めてみる
忍è«ã«ã¯éçããã
å¹³æ¹æ ¹ã®ã³ã¼ãã§ããã²ã¨ã¤å¤æ°ãå°å ¥ãã¦ã¿ã¾ãã
System.out.println( letR(2, target -> DoubleStream.iterate(target, x -> letR(x * x - target, num -> letR(2 * x, den -> letR(num / den, frac -> x - frac )))) .skip(5).findFirst().orElse(0) ) );
ããããã¨ã³ã³ãã¤ã«ã¨ã©ã¼ã«ãªã£ã¦ãã¾ãã¾ãã
ä¸é©åãªå: ã©ã ãå¼ã®æ»ãåã䏿£ã§ã æ¨è«åãä¸éã«é©åãã¾ãã æ¨è«: R ä¸é: Double,Object
ã©ãããã¿ã¼ã²ãã忍è«ãï¼æ®µãããã¾ã§ããè¦ã¦ãªãæãã§ãdenãfracã®letRã®åã«ãã£ã¹ããå
¥ãã¦æç¤ºçã«åãæå®ãã¦ãããã¨å¤§ä¸å¤«ã§ãã
System.out.println( letR(2, target -> DoubleStream.iterate(target, x -> letR(x * x - target, num -> letR(2 * x, den -> (double)letR(num / den, frac -> x - frac )))) .skip(5).findFirst().orElse(0) ) );
忍è«ãï¼ã¤ç¶ããªããã°å¤§ä¸å¤«ã£ã½ããb120ã§è©¦ãã¦ã¾ãã
ã¾ã¨ã
ç¦æ¢ã¯ã¼ãï¼ãã¬ã¹ãï¼ããã ã£ãããã¬ã¹ãï¼ããã£ã¦ããæ
ãã¨ãªããLombokã§
val f = new JFrame("ãã¹ã"); val b = new JButton("æ¼ãã¦"); val ta = new JTextArea();
ã£ã¦ããã®ã便å©ãã¨ãã£ã¿ã対å¿ãã¦ãããã°ã
â»2020/10/18 Java 10ããã¯æ®éã«varã§ãã¼ã«ã«å¤æ°åæ¨è«ãã§ããããã«ãªã£ã¦ã¾ããã