IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
Scalaã¯ãã¹ã¤ã¹é£é¦å·¥ç§å¤§å¦ãã¼ã¶ã³ãæ ¡ã®Martin Oderskyï¼ãã¼ãã£ã³ã»ãªã¼ãã¹ãã¼ï¼ææçãããã¼ã ãéçºãã¦ããããã°ã©ãã³ã°è¨èªã§ãããªã¼ãã³ã½ã¼ã¹ï¼BSDã©ã¤ã»ã³ã¹ã«ä¼¼ãSCALA LICENSEï¼ã§éçºã»å ¬éããã¦ããããã®ç¯å²å ã§èªç±ã«å©ç¨ã§ãã¾ããæåã«ãâãªããScalaã®äººæ°ãé«ã¾ã£ã¦ããã®ãâã説æãã¾ãã Scalaã¯ããªãã¸ã§ã¯ãæåã«å ãã¦é¢æ°åè¨èªã®ç¹å¾´ãåããæ¯è¼çæ°ããè¨èªã§ãããã®ãâãªãã¸ã§ã¯ãæåã«å ãã¦âã¨ããã®ããã¤ã³ãã§ããæ°ãããã©ãã¤ã ï¼åé¡è§£æ±ºã®ããã®èãæ¹ï¼ããå¾æ¥ã®ãã©ãã¤ã ã«éãåããã¦ãããã¨ããããã«ããã©ãã¤ã ã®è¨èªã¨ããããã¾ãã ã¡ãªã¿ã«Scalaã¨ããååã¯ãScalable Languageï¼æ¡å¼µæ§ã®ããè¨èªï¼ã®ç縮形ã§ãããã®ã¹ã±ã¼ã©ãã«ã¨ããè¨èã«ã¯ããå°ããããã°ã©ã ã大è¦æ¨¡ãªããã°ã©ã ãåãæ¦å¿µã§
ååï¼id:fits:20110925ï¼ã並åã³ã¬ã¯ã·ã§ã³ç㧠Web ã³ã³ãã³ãããã¦ã³ãã¼ãããå¦çãå®è£ ãã¦ã¿ã¾ããããä»åã¯ãã®éåæå¦ççã Groovy, Scala, F# ã§å®è£ ãã¦ã¿ã¾ãããï¼ä¸»ãªä»æ§ã¯ååã¨åãï¼ å®è¡ä¾ groovy async_download_web.groovy destdir < urls.txtä»åãéåæå¦çã®ããã«ä½¿ç¨ããæ©è½ã¯ä»¥ä¸ã®éãã§ãã Groovy : GPars Scala : éå®ç¶ç¶ + Actor F# : éåæã¯ã¼ã¯ããã¼ ãµã³ãã«ã½ã¼ã¹ã¯ http://github.com/fits/try_samples/tree/master/blog/20111016/ Groovy ã®å ´åï¼ GPars éåæå¦çã§ã GPars ã使ãã¾ãã GParsPool.withPool ã GParsExecutorsPool
è¤æ°ã®Webã³ã³ãã³ãï¼HTMLãç»åãªã©ï¼ããã¦ã³ãã¼ãããéã« 1件ãã¤å¦çãã¦ããã®ã§ã¯éå¹çã§ãã ã¨ããããã§ã並åçã«Webã³ã³ãã³ãããã¦ã³ãã¼ãããããã°ã©ã ã Groovy, Scala, C#, Java, Ruby ã§å®è£ ãã¦ã¿ã¾ããã 主ãªä»æ§ã¯ä»¥ä¸ã§ãå¤é¨ã©ã¤ãã©ãªã使ç¨ããã«å®è£ ãã¾ããã å®è¡æã®ç¬¬1å¼æ°ã§åºåå ãã£ã¬ã¯ããªãæå® ãã¦ã³ãã¼ã対象㮠URL ãæ¨æºå ¥åã§æå®ï¼æ¹è¡åºåãã§è¤æ°æå®ï¼ URL å ã®ãã¡ã¤ã«åãåºåãã¡ã¤ã«åã¨ãã¦ä½¿ç¨ å®è¡ä¾ groovy download_web.groovy destdir < urls.txtãµã³ãã«ã½ã¼ã¹ã¯ http://github.com/fits/try_samples/tree/master/blog/20110925/ Groovy ã®å ´å Groovy 1.8 ã§ã¯ GPars ãå梱ããã¦ã
2011å¹´9æ7æ¥æ°´ææ¥ Java ããµãã¼ããããã¯ã©ã¦ãç°å¢ Heroku 㧠Play!Scala ã試ã Tweet å æ¥Herokuã§ãHeroku for Javaãã®çºè¡¨ãããã¾ããã http://blog.heroku.com/archives/2011/8/25/java/ Herokuã¯ã¹ã±ã¼ã«ã¢ã¦ãå¯è½ãªã¯ã©ã¦ãä¸ã®ãã©ãããã©ã¼ã ç°å¢ã§ãã è¨èªã¯RubyãNode.jsãClojureã«å¯¾å¿ãã¦ããã®ã§ãæè¿ã®ã¯ã©ã¦ããåãå·»ãç°å¢ãç°¡åã«æã«å ¥ãã¾ãã ä»åã®Javaã®å¯¾å¿ã«ãããããã«éçºè ã«ã¨ã£ã¦èº«è¿ãªç°å¢ã«ãªã£ãã¨ããå°è±¡ãããã¾ããããã¦Herokuã¯ä»å¾ãè²ã ãªè¨èªã«å¯¾å¿ãã¦ããäºå®ã§ããã¨ãè¨ã£ã¦ãã¾ãã ãããæ©ã«è§¦ã£ã¦è¦ã¦æ触ã試ãã¦ã¿ããã¨æãæ¹ãå¤ãã®ã§ã¯ç¡ãã§ããããï¼ salesforceã®ããã°ã§ãçºè¡¨ããããMavenã
æè¿ãGroovyã®æ¸ç±ãèªãã§ASTå¤æã«èå³ãæã¡ã¾ãã¦â¦ããã§ãã¡ãã£ã¨è©¦ãã«ãã£ã¦ã¿ãããã¨ããã£ãã®ã§ããããããããã«ã¯Scalaã®Compiler Pluginãæ¸ãå¿ è¦ãããã¿ããã§ããã Scala Compiler Pluginãå©ç¨ããã¨ã ã³ã³ãã¤ã«æã«ãã§ãã¯ã®è¿½å ãã使ãã©ã¤ãã©ãªãªã©ã®æé©å Scalaã®Syntaxãæ¸ãæãã ãªãã¦ãã¨ãå¯è½ã«ãªãããã§ãã ãããªããã¼ãã«ãé«ããã¨ããã®ããªããªã®ã§ãæ¬å®¶ã®ãµã³ãã«ãã¾ãã¯åçµãã¦ã¿ã¾ãããã Writing Scala Compiler Plugins http://www.scala-lang.org/node/140 åã®ä¾ã¯ã0é¤ç®ãã§ãã¯ãè¡ããã©ã°ã¤ã³ã§ãããããScalaã½ã¼ã¹ object DivByZeroTest { def main(args: Array[String]): U
ååã¯Liftã®åºæ¬çãªä½¿ãæ¹ãç´¹ä»ããç°¡åãªã¦ã§ãã¢ã«ãã ãµã¼ãã¹ãä½ãã¾ãããä»åã¯ãã®ã¦ã§ãã¢ã«ãã ãµã¼ãã¹ãæ¡å¼µããªãããããçºå±çãªLiftã®æ©è½ããã¯ããã¯ãç´¹ä»ãã¦ããã¾ãã ä»åç´¹ä»ãããã¨ã¯æ¬¡ã®éãã§ãã ã¦ã¼ã¶ã¼ã¢ã«ã¦ã³ãã®æ±ãæ¹ Boxã¢ããã使ã£ããã¯ãã㯠Ajaxã®å®è£ æ¹æ³ ååä½ã£ãã¦ã§ãã¢ã«ãã ãµã¼ãã¹ã§ã¯ãã¹ã¦ã®ã¢ã«ãã ãå ¬éããã¾ãããããããå®éã¯å®¶æãå人ã ãã«ã¿ã¦ã»ããå ´åãããã¾ããããä¾ãã°çµå©å¼ããªãä¼ã§ã®åçãåå è ã ãã§å ±æããããåä¾ã®æé·ã®è¨é²ã家æã親æã§å ±æã§ãããã¨ã¦ã便å©ã§ãã ä»åã¯ååã®ã¦ã§ãã¢ã«ãã ãµã¼ãã¹ãæ¡å¼µãããããããªäººã«ä½¿ã£ã¦ããããããã¢ã«ã¦ã³ããå°å ¥ããã¢ã«ãã ãã¨ã®æ¨©éãå°å ¥ããã¦ã¼ã¶ã¼ãè¨å®ã§ããããã«ãã¾ãã 1. ã¢ã«ã¦ã³ãã®å°å ¥ ã¾ãã¯ã¦ã¼ã¶ã¼ã¢ã«ã¦ã³ããå°å ¥ãã¾ããLiftã«ã¯ã¦ã¼ã¶ã¼ã¢ã«ã¦ã³ã
Scala2.9ãããDynamicã£ã¦ã®ã§Rubyã®method_missingçãªãã¨ãã§ããããã«ãªã.....ããºã ã£ããã ãã 2.9æ£å¼ãªãªã¼ã¹ã®æ°æéåã«ãããªããã®æ©è½ã¯ãµãã¼ããããªããªã£ãã ã¨ãã£ã¦ãå ¨ã使ããªããªã£ãããã§ã¯ãªããscalacãscalaã³ãã³ãã«-Xexperimentalãªãã·ã§ã³ã使ãã°ä½¿ããããã«ãªãã ã§ãDynamicã£ã¦ã©ããªã®ãã¨ããã¨ãDynamicã¨ãããã¬ã¤ããå®è£ ããã¯ã©ã¹ã¯ãå®ç¾©ããã¦ããªãã¡ã½ãããå¼ã³åºãããã¨applyDynamic(methodName:String)(args:Any*)ã¨ããã¡ã½ããã代ããã«å¼ã³åºãããããã«ãªãã scala> class Foo extends Dynamic { | def applyDynamic(methodName:String)(args:Any*) = { | p
ãããªã¿ã¤ãã«ãä»ãã¦ã¿ã¾ããããããã¯åãªãåè«ã§ãªãããé¢æ°åãã¨ãããªãã ãå°é£ããããªã¤ã¡ã¼ã¸ãå®çãã¦ããæ¦å¿µãç¥ããã¨ç¡ããJavaããã°ã©ãã«Scalaã説æãã¦ã¿ããã¨ãã試ã¿ã§ãããã®è¨äºã§ãå°ãã§ãScalaã«å¯¾ããã¨ã£ã¤ãããããææã§ããããªãã¨æã£ã¦ãã¾ãã Scalaã®ä¸»ãªæ©è½ ã¯ã©ã¹ï¼Javaã®ã¯ã©ã¹ã¨è¨æ³ãéãã¾ããã大ä½åãã§ãã class A { } ãã¬ã¤ãï¼ã¡ã½ãããå®è£ ã§ãã便å©ãªã¤ã³ã¿ãã§ã¼ã¹ã§ãã trait A { def hoge() { println("hoge") } } class B extends A {} new B().hoge ã¤ã³ã¿ãã§ã¼ã¹ã«ã¡ã½ãããå®ç¾©ã§ãã¦å¬ããã§ããã ãªãã¸ã§ã¯ãï¼GoFã®ã·ã³ã°ã«ãã³ãã¿ã¼ã³ãè¨èªã¬ãã«ã§ãµãã¼ãããã ãã§ãã object A { val i = 10 } ã¨ãããã¨ãAã¨
Scalaè¨èªã®åµå§è Martin Oderskyæ°ã¯5æ12æ¥ãScalaãå°éã¨ãããªã¼ãã³ã½ã¼ã¹ä¼æ¥ãTypesafeããå ±åã§ç«ã¡ä¸ãããã¨ãçºè¡¨ãããScalaã¨ããã«ã¦ã§ã¢ã®ãAkkaããçµã¿åãããã¹ã¿ãã¯ãTypesafe Stackããæä¾ããã Scalaã¯Oderskyæ°ãã¹ã¤ã¹ã®ã¹ã¤ã¹é£é¦å·¥ç§å¤§å¦ï¼EPFLï¼ã§éçºããããã°ã©ãã³ã°è¨èªãJavaä»®æ³ãã·ã³ã§åãããªãã¸ã§ã¯ãæåè¨èªã¨é¢æ°è¨èªã®ä¸¡æ¹ã®ç¹å¾´ãæã¤ãTwitterãFacebookãFoursquareãªã©ãå©ç¨ãã¦ããã Akkaã¯ã¤ãã³ã主å°ã®ããã«ã¦ã§ã¢ãJavaä»®æ³ãã·ã³ä¸ã§ã並è¡ãåæ£ããã©ã¼ã«ããã¬ã©ã³ããªã·ã¹ãã ãæ§ç¯ã§ããã¨ãããScalaã§æ§ç¯ããã¦ãããScalaã¨Java APIãæã¤ã Oderskyæ°ã¯ãAkkaãéçºããJonas Boneræ°ã¨å ±åã§Typesafeãè¨ç«ã
groovy 1.8 ã§ã¯ãmemoize ã«ãã£ã¦ã¯ãã¼ã¸ã£ã®ã¡ã¢åãåºæ¥ãããã«ãªã£ãããã©ãscala ã ã£ã¦ã§ãããããã¨ããè² ãæãã¿ã¨ã³ããªã æ®éã®èªåã¡ã¢å ãµã¯ã£ã¨ä½ã£ããã®ã(1ã5å¼æ°å¯¾å¿)ãGistã«ä¸ããã®ã§ç°¡åã«ç´¹ä»ã å®è£ ã®ãã¤ã³ãã¯åç´ã§ãä¸è¨ã®éãã // 1å¤æ°é¢æ°ãã¡ã¢åãã(2å¤æ°ä»¥ä¸ã¯ tupled/untupledã§å¯¾å¿) def memoize[ArgT, RetT](f: ArgT => RetT): ArgT => RetT = { val memo = scala.collection.mutable.Map.empty[ArgT, RetT] arg => memo.getOrElseUpdate(arg, f(arg)) } ãããªé¢¨ã«ãã¦ä½¿ãã object Main extends Application { val fib: I
æ¬æ¥ãæ¥æ¬Javaã¦ã¼ã¶ã¼ã°ã«ã¼ãï¼JJUG)主å¬ã®CCC 2014 Springã¨ããJavaã®åå¼·ä¼ã«è¡ã£ã¦ãã¾ãããä¼å ´ã¯ããã«ãµã¼ã«è¥¿æ°å®¿ã§ãé½å¶å¤§æ±æ¸ç·é½åºåã®A5åºå£ãåºã¦ãæ°å®¿ä¸å¤®å ¬åã®5åãããæ©ããã¨ããã«ããã¾ãããä»ã¯ã¹ãã¼ããã©ã³ã§å°å³ã確èªããªããè¡ããã®ã§ãåãã¦ã®å ´æã§ãæ¹åé³ç´ã®ç§ã§ãé»è»ã®é§ ããééããªããã°å¤§ä¸å¤«ã§ããã CCCã¨ããã®ã¯Cross Community Conferenceã®ç¥ã§ããã¾ãã¾ãªã³ãã¥ããã£ã¼ã®äº¤æµã®å ´ã¨ãªãä¼è°ã¨ãã趣æ¨ã§ããããï¼ãã®CCCã¨ããã¤ãã³ãã¯2012ããéå¬ããã¦ãããããªã®ã§ããï¼CCC | æ¥æ¬Javaã¦ã¼ã¶ã¼ã°ã«ã¼ãï¼ãä»ååãã¦åå ããã¦ããã ãã¾ãããæ®å¿µãªããå人çãªé½åãããåºèª¿è¬æ¼ã¨åå¾ã®ååã®ã»ãã·ã§ã³ã®ã¿ã§å¾åã¨æ親ä¼ã«ã¯åå ã§ãã¾ããã§ããããåå ããã»ãã·ã§ã³ã«ã¤ãã¦ã¾ã¨ãã¾ãããã®ä»
ãã¹ããæ¸ãã¦ããã¨ã¢ãã¯ãªãã¸ã§ã¯ãã使ãæ©ä¼ãå¤ãã¨æãã¾ãããã®ã¢ãã¯ãªãã¸ã§ã¯ãã¯èªåã§ä½ãããã¯ãJMockãMockito*1ãªã©ã®ãã¬ã¼ã ã¯ã¼ã¯ãå©ç¨ããæ¹ã楽ã§ãããã ä»åã¯æ©è½çã«ãã»ã¼æå¼·ã¨æãããJMockitãç´¹ä»ãã¾ãã ããããä»ã®ã¢ãã¯ãã¬ã¼ã ã¯ã¼ã¯ã¨ã®æ©è½æ¯è¼ã§ãã MockingToolkitComparisonMatrix - jmockit - A feature matrix comparing several mocking toolkits. - Project Hosting on Google Code æ©è½ãå¤ããã°ä½¿ãããããããããªãã¨ã¯ãªãã¨æãã¾ããããããããã¯ä½¿ããããããã¨å¨ãã®äººãããå§ãããã£ãã®ã§ãå®éã«ä½¿ã£ã¦ã©ããªã¨ããã使ããã®ãæ¤è¨¼ãã¦ã¿ãã®ã§ãæ¸ãã¦ã¿ã¾ãããã¨ãæå¾ã«Scalaã§ä½¿ããã試ãã¦ã¿ã¾ããã ãã
æéä¼ç¤¾ITãã©ã³ãã³ã°å¤åã®ããã°ã©ãã¼ãScalaãOCamlãF#ãªã©ã®éçåä»ãé¢æ°åè¨èªãå©ç¨ããã·ã¹ãã éçºæ¥åã«å¾äºãå®ç証ææ¯æ´å¨Coqãã¢ãã«çºè¦å¨Alloyã¨ãã£ãå½¢å¼ææ³ãã¼ã«ã®æ¥åã¸ã®å¿ç¨ã«ãèå³ãæã£ã¦ããã Scalaã®æ¨æºã©ã¤ãã©ãªã¯ãJavaç¨å¤§ããããã¾ãããããã¼ãµã¼ã³ã³ããã¼ã¿ã¼ãçé ã«å°ç²ã§ãã´ããã¨è¾ãé¸åãæã£ã¦ãã¾ãããã®è¨äºã§ãç´¹ä»ãããã¢ã¯ã¿ã¼ãããã®ä¸ã¤ããã«ãã¹ã¬ããã®ã¹ãã²ããã£ããããããããã³ãã¼ãã«å¤ãã¦ããããéæ³ã®ã¹ãã¤ã¹ã§ããnew Threadã¨ããããªã£ãããä¸æ©ç«ã¡æ¢ã¾ã£ã¦scala.actorsããã±ã¼ã¸ã®æãå©ãã¦ã¿ã¦ãã ããã ãªããæ¬ç¨¿ã§ã¯2åã«ããã£ã¦ãã¢ã¯ã¿ã¼ã¨ã¯ä½ãªã®ããã¢ã¯ã¿ã¼ã使ãã¨ã©ã®ãããªäºãå¯è½ãªã®ãããç´¹ä»ããäºå®ã§ãã並è¡å¦çã«èå³ããã£ããããªãããã®å½¢ã§ä¸¦è¡å¦çã«è§¦ããããããã¨ããã
ååã¾ã§ã§ãLiftã®Viewã¨Modelãå©ç¨ããç°¡åãªã¢ããªã±ã¼ã·ã§ã³ã®ä½æã¾ã§ã解説ãã¦ãã¾ãããæ¬é£è¼ã¯ä»åã§æçµåã¨ãªãã¾ããããã¾ã§ã®ã¾ã¨ãã®æå³ãããã¦ããã¾ã¾ã§ä½æãã¦ããTwitterã®ã¯ãã¼ã³ã®ãããªã¢ããªã±ã¼ã·ã§ã³ãæ¹è¯ãã¦ãLiftã®ç®çã§ããAjaxã¨Cometãå©ç¨ããã¢ããªã±ã¼ã·ã§ã³ã®ä½ææ¹æ³ã解説ãã¾ãã ã¯ããã« ååã¾ã§ã§ãLiftã®Viewã¨Modelãå©ç¨ããç°¡åãªã¢ããªã±ã¼ã·ã§ã³ã®ä½æã¾ã§ã解説ãã¦ãã¾ããã æ¬é£è¼ã¯ä»åã§æçµåã¨ãªãã¾ããããã¾ã§ã®ã¾ã¨ãã®æå³ãããã¦ããã¾ã¾ã§ä½æãã¦ããTwitterã®ã¯ãã¼ã³ã®ãããªã¢ããªã±ã¼ã·ã§ã³ãæ¹è¯ãã¦ãLiftã®ç®çã§ããAjaxã¨Cometãå©ç¨ããã¢ããªã±ã¼ã·ã§ã³ã®ä½ææ¹æ³ã解説ãã¾ãã 対象èªè Javaã¯ç¥ã£ã¦ããããScalaãå¦ãã§ã¿ããã¨æã£ã¦ããæ¹ Scalaã§ã®Webã¢ããªã±ã¼ã·ã§
SIerå¤åãé¢æ°åããã°ã©ãã³ã°è¨èªãå½¢å¼ææ³ã«èå³ãããè²ã åå¼·ä¸ã"A Scala Tutorial for Java programmers"ã®å訳ãScalaåå¼·ä¼(scala-beãªã©)ã§ã®çºè¡¨ãªã©Scalaã®æ®åæ´»åãè¡ã£ã¦ããã ç¾å¨ä½¿ç¨ããã¦ããScala 2.7ç³»ã«å¯¾ãã¦ã2009å¹´å¾åã«Î²çãå ¬éãããã¹ãä¸ã®Scala 2.8ç³»ã§ã¯å¤§ããªå¤æ´ãæ°å¤ãã®èå³æ·±ãæ©è½è¿½å ãè¡ããã¦ãã¾ããä»åã¨æ¬¡åã¯Scala 2.8ã«ã¤ãã¦ã®ç´¹ä»ãè¡ãã¾ãã ãªãScala 2.8ã¯ç¾å¨ãéçºä¸ã§ãããã®è¨äºã¯2009/12/24çã®Scala 2.8.0ãå ã«å·çãã¦ãã¾ãã®ã§ãScala 2.8ã®æ£å¼ãªãªã¼ã¹ã¾ã§ã«å¤æ´ãå ããå¯è½æ§ããããã¨ãäºããæãè´ãã¾ãã Scala 2.8 ã«ã¤ã㦠ãã®è¨äºãå·çãã¦ããæç¹(2009å¹´12æ)ã«ãããScalaã®å®å®çã¯2.7.7
Scalaã¨ã¯ Scalaã¯ã2003å¹´ã«Javacï¼ã³ã³ãã¤ã©ï¼ãJavaã®Genericsã®è¨è¨ï¼éçºè²¢ç®è ã§ããMartin Oderskyæ°ï¼ã¹ã¤ã¹ã»ãã¼ã¶ã³ãå·¥ç§å¤§å¦ææï¼ã«ãã£ã¦ãéçºãéå§ãããæ¯è¼çæ°ããããã°ã©ãã³ã°è¨èªã§ããJavaã¯å®ç¨è¨èªã¨ãã¦å¹ åºãã·ã¹ãã ã§ä½¿ç¨ããã¦ãã¾ããããä¸ä½äºææ§ãä¿ã¤ã¨ããè¦è«ã®ä¸ãè¨èªã¨ãã¦ã®æ©è½å¼·åããªããªãé²ã¾ãªãã¨ãã£ãéçãè¦ãã¦ãã¦ãã¾ãããã®ãããªç¾ç¶ããããã¨ãããScalaã¯Javaã®å¾ç¶ã¨ãã¦å®ç¨çãªè¨èªãç®æãã¦éçºããã¦ãã¾ãã Scalaæ大ã®ç¹å¾´ã¯ãJavaã®è¯ããæ大éç¶æ¿ãã¤ã¤ãã¹ã¯ãªããè¨èªãé¢æ°åè¨èªã®è¯ãã¨ãããå¸åããå é²çãªæ©è½ï¼ææ³ãåãå ¥ãã¦ããç¹ã§ããã¾ããä»å¾ã®ãã¼ãã¦ã§ã¢ã®ãã«ãã³ã¢åãè¦æ®ããç°¡æã«ä¸¦åå¦çããã°ã©ãã³ã°ãè¡ããã¨ãã§ããã©ã¤ãã©ãªãä»å±ãã¦ãã¾ãã Scalaã®ã¡ãª
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}