ã¯ããã« å æ¥ãã¨ã³ã¸ãã¢ã®è½åã¨ä»ã©ãã®é£ããã¨ããã¿ã¤ãã«ã®è¨äºï¼2018å¹´ï¼ãèªãã§ããããã¯ã»ãã¨ã«ãã®éããã¨æã䏿¹ã§ãå ·ä½ä¾ããªãããã«ãã³ã¨æ¥ãªã人ãããã¦ã³ãåãã§ã¯ã¨ããæè¦ã夿°è¦ããããã¨ããããã§ãèªåãæ¯è¼ç徿ãªãããã°ã©ãã³ã°è¨èªã®æ§æè§£æã¨ãã£ãåéã«é¢ãã¦ããã®è¨äºã®è¨ããã¨ãã¦ãããã¨ãè£è¶³ãããããªè¨äºãæ¸ããã¨æãè³ã£ãã è¨äºä¸ã§ã¯ãã¨ã³ã¸ãã¢ã«å¿ è¦ãªç¥èãçµé¨ããããã¼ã¹ããã«ãã´ãªããå®è¡ç°å¢ãã¨ããå½¢ï¼ä»¥ä¸ï¼ã«åãã¦è«ãã¦ããã â ãã¼ã¹ ã³ã³ãã¥ã¼ã¿ãµã¤ã¨ã³ã¹(CS)ãªã©ã®çè«çãªãã® ä½ã¬ã¤ã¤ã¼ â¡ã«ãã´ãª ããã³ãã¨ã³ã / ããã¯ã¨ã³ã / ã¯ã©ã¤ã¢ã³ãã¢ããªãªã© â¢å®è¡ç°å¢ ç¹å®ã®ããã°ã©ãã³ã°è¨èªãéçºç°å¢ããã¼ã«ããã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªãªã© ãã®ä¸ã§ãç¹ã«å°è±¡çã§ããããã¤ãããããããã¨æã£ãã®ã¯ä»¥ä¸ã®è¨è¿°ã ã â¢ã¯æ¯è¼
Runnable/Callable Threads Executors/ExecutorService Futures Thread Safety Problem Example: Search Engine Solutions Runnable/Callable Runnable has a single method that returns no value. trait Runnable { def run(): Unit } Callable is similar to run except that it returns a value trait Callable[V] { def call(): V } Threads Scala concurrency is built on top of the Java concurrency model. On Sun JVMs,
ã©ãããããã°ã©ãã³ã°ãå§ãã¦ä¸å¹´ã¡ãããããã®åå¿è ã¨ã³ã¸ãã¢ã§ã æ®æ®µã¯scalaãä¸»ã«æ¸ãã¦ãã¦ãã¡ããã¡ããAngularã¨ããæ¸ãã¦ã¾ã 両æ¹vimã使ã£ã¦æ¸ãã¦ã¾ãããå®ç¾©å ã¸ã£ã³ãã¨ãè£å®æ©è½ã¨ãã¯ãã£ã±ãIDEã¨ãVScodeã®ç±ããã©ã°ã¤ã³ãåªç§ããã¦ããã ããããã£ã¡ä½¿ããã£ã¦è©±ãªãã§ãããåºæ¬çãªã¿ã¼ããã«ã§ã®æä½ããã£ããã§ããããã«ãªãã¾ã§ã¯IDEãããªãã¦emacsã¨ãvim使ããã£ã¦ä¼ç¤¾ã®CTOã«è¨ããã¦ä¸æ¦emacsã使ãå§ãããã§ãããemailã¯ã«ã¹ã¿ãã¤ãºã®è¨äºããªãããã¦vimã«ç§»è¡ãã¾ããã ã¡ãªã¿ã«CTOã¯eamcsæ´¾ï¼ã¨ãã£ã¿æ¦äºwï¼ ã§ããã£ã±ãå¼·ãè£å®æ©è½ãå®ç¾©å ã¸ã£ã³ããæ§æã¨ã©ã¼ãããã¯æãã¦æ¬²ããããã ããããæè¿vim-metalsã¨ããããã©ã°ã¤ã³ãæ¿ã¢ãã¨ã®æ å ±ãæµãã¦ããã®ã§å ¥ãã¦ã¿ããã§ããç¥ãããã®ã§å ±æãã¾ã ç°å¢
æ«å°¾å¼ã³åºãæé©å Java ã¯æ«å°¾å¼ã³åºãæé©åãããªããã¨ã§æåã [2]ï¼ã ãã©ï¼ Scala ã¯æ«å°¾å¼ã³åºãæé©åãè¡ãï¼å ·ä½çã«ã³ã¼ããè¦ã¦ã¿ã: $ cat src/TailCallOpt.scala object TailCallOpt { def tailCallFunc(a: Long): Long = { if (a > 10) a else tailCallFunc(a + 1) } } $ scalac -Ystop-after:tailcalls -Xprint:fields,tailcalls src/TailCallOpt.scala [[syntax trees at end of fields]] // TailCallOpt.scala package <empty> { object TailCallOpt extends Object { def <
åãã¾ãã¦ãAds Platforméçºãã¼ã ã®å²¡ç°ï¼@ocadarumaï¼ã§ãã ãã®è¨äºã¯LINE Advent Calendar 2017ã®17æ¥ç®ã®è¨äºã§ãã ä»åãå人çã«ä»¥åããæ°ã«ãªã£ã¦ããAkka HTTPã®å 鍿§é ã«ã¤ãã¦ããã®æ©ä¼ã«èª¿ã¹ã¾ããã®ã§ç´¹ä»ãããã¾ãã Akka HTTPã¨ã¯ Akka HTTPã¯ãLightbend社ã«ãã£ã¦éçºããã¦ãããScala/Javaç¨ã®HTTP toolkitã§ãã ç¾å¨ã¯ã¡ã³ããã³ã¹ãçµäºããsprayã®å¾ç¶ã¨ä½ç½®ä»ãããã¦ãããç¹å¾´çãªRouting DSLãsprayããåãç¶ãã§ãã¾ãã ã¾ããPlay Frameworkã¯2.6ç³»ãããAkka HTTPãããã©ã«ãã®ããã¯ã¨ã³ãã¨ãã¦æ¡ç¨ãã¦ãã¾ãã 調æ»ã®ãã£ãã Routing DSLãå§ãã¨ããAkka HTTPã®APIã¯ãã·ã³ãã«ãã¤é«ãComposabilit
What do you get if you boil Scala on a slow flame and wait until all incidental features evaporate and only the most concentrated essence remains? After doing this for 8 years we believe we have the answer: itâs DOT, the calculus of dependent object types, that underlies Scala. A paper on DOT will be presented in April at Wadlerfest, an event celebrating Phil Wadlerâs 60th birthday. Thereâs also a
æ°ããè¨äºãæ¸ãã¾ãã. æ¬è¨äºãå å«ãã¾ã. amaya382.hatenablog.jp Dottyã§ä½ãã§ããããã«ãªãã®ãã¨ãã®ä½¿ãæ¹ãç°¡åã«ã¾ã¨ãããã¨æãã¾ã. çè«çãªé¨åã¯æ·±æããã¾ãã. 以ä¸ã¡ãã£ã¨é·ã. 調ã¹ããã¦ãªãç¹ãå¤ã ããã®ã§, æããééãããã£ããæãã¦ãã ãã. ããããDottyã¨ã¯ Dependent Object Types (DOT) ã«åºã¥ããæ°ããScalaã³ã³ãã¤ã©ã§ã. ãã¾ã«Scala3ã¨ãå¼ã°ãããããã¦ãã¾ã. DOTè¨ç®çè«ã®è©³ç´°ã¯çãã¾ã (ã¾ã¨ããã»ã©çè§£ã§ãã¦ããªãã¨ãè¨ãâ¦). ç¾è¡ã®ã³ã³ãã¤ã©ã¨æ¯ã¹, ã³ã³ãã¤ã©ãµã¤ãºã®æ¸å°ã»ã³ã³ãã¤ã«é度åä¸ã»æ§ã ãªæ©è½è¿½å ã®ä», ã³ã³ãã¤ã©èªä½ã®éçºå®å®æ§ãå¢ããã¯ãã«ãªã¢ããã°ã¬ã¼ããæå¾ ã§ãã¾ã. ç¾è¡ã®Scalaã¨ã®äºææ§ã¯åãã¦ãã¾ãã, å¿è«éè¦ãªæ©è½ããªããªãã¨ãã£ããã¨
社å ã§4æããé±ä¸ã§Type-Driven Development with Idrisã®èªæ¸ä¼ããã£ã¦ãã¾ãã Type-Driven Development with Idris ä½è : Edwin Bradyåºç社/ã¡ã¼ã«ã¼: Manning Pubns Coçºå£²æ¥: 2017/04/07ã¡ãã£ã¢: ãã¼ãã¼ããã¯ãã®ååãå«ãããã°ãè¦ã ä»å¹´ã®ScalaMatsuriã§@cbirchallããã«ãªã¹ã¹ã¡ãããã®ãããã«ã±ãªã®ã§ãããä¾ååï¼Dependent Typeï¼ã使ã£ã¦å¤æ çãªãã¨ãããããã§ããã¨ãã話ãèãã¦é¢ç½ããã¨ãããã¨ã§æå¿ï¼ãã¾ã®ã¨ãã6人ãããï¼ã§éã¾ã£ã¦ç·©ãèªã¿é²ãã¦ãã¾ãã ãããã2ç« ã®ä¸ç¤ã«å·®ãæãã£ãã¨ãããªã®ã§ã¾ã å ã¯é·ããã§ããã1ç« ã§Idrisã®æ¦è¦ãã¦ã©ã¼ã¯ã¹ã«ã¼ããã®ã§Idrisã®ææ³ãIdrisã§ã®ããã°ã©ãã³ã°ã®ã使³ã®ãããªãã®ã
2017å¹´2æ28æ¥ä»ãã§æ ªå¼ä¼ç¤¾ãã¯ã³ã´ãéè·ãã¾ããã æ°åå ¥ç¤¾ããäºå¹´å¼±ãScalaãæ¸ããããScalaTextã®ä½æã«åå ããããKafkaãéç¨ããããã¦ãã¾ããã çãæéã§ãããscalazã³ã³ããªãã¥ã¼ã¿ã¼1ä½ï¼2ä½ã®äºº*1ãå«ããè²ã ãªå´é¢ã§ããã人éã¨åããã¼ã ã§ä»äºãåºæ¥ãã®ã¯ã¨ã¦ãããçµé¨ã«ãªãã¾ããã ãã©ã·ã®è£ã«ãªãã¾ããããã£ããã®ç¯ç®ãªã®ã§ãã¯ã³ã´ã®æãåºãæ¸ãã¦ããã¾ããå人ããã°ã ããââ (à¸Â´ï½¥_ï½¥`)ว â¾â¾ Slackã¨åå ±ãã£ã³ãã« ãã¯ã³ã´ã¯Slackãç°æ§ã«çºå±ãã¦ãã¦ãã£ã³ãã«ã2700以ä¸ãããèªåèªèº«ãjoinæ°ã社å 2ä½(700ãã£ã³ãã«)ã«ãªãã»ã©ããã£ã¦ãã¾ããã æè¿ã§ã¯åå ±ãæ¥éã«çºå±ãã¦ãã¾ãã#times_matsu_charaã¯ã¸ã§ã¤ã³è æ°55人ã§ããã¡ãã社å 2ä½ã§ããã å²ãã¨é·ããã¨1ä½ã ã£ãã®ã§ãã人äºé¨é·ã«
(編注ï¼2016/7/27ãé ãããã£ã¼ãããã¯ãå ã«è¨äºãä¿®æ£ãããã¾ããã) å¦çãã¡ãããæ¬¡ã«å¦ã¶è¨èªã¯ã©ããããã®ãã¨ããèããã¾ããITæ¥çã§åããã人ã«ãè¦ãããã®ã¯ãç¾å¨çãã«ä½¿ããã¦ããè¨èªã§ããC++ãJavaãC#ã¯ãã¡ãããPythonãRubyãPHPãPerlãªã©ãæããããã§ãããã 䏿¹ãåå¦ã®ããã¨ãã人ããå¦è¡ç ç©¶ãèµ·æ¥ã«é¢å¿ããã人ã«ã¨ã£ã¦ã次ã®è¨èªãé¸ã¶åºæºã¨ãªãã®ã¯ãå°±è·ã«æå©ãã§ã¯ãªãè¨èªã®è¡¨ç¾åã§ããããå¦è¡ç ç©¶ãèµ·æ¥æ´»åãè¡ãã«ã¯ãããã°ã©ãã¨ãã¦ã®è½åãä½åã«ãé«ããå¿ è¦ãããã¾ããããã¦ãï¼ããããï¼ç¢ºç«ãããã³ã¼ããã¼ã¹ãæ±ã£ãçµé¨ã¯ãªãã§ããããããæå ã«ããã¿ã¹ã¯ã«ã¨ã£ã¦æé©ãªè¨èªãèªç±ã«é¸ã¶ãã¨ãã§ãã¾ãã ãã®è¨äºã§ã¯ãåå¼·ã«é©ããHaskellãScalaãMLãSchemeã¨ãã4ã¤ã®è¨èªããç§ã®å¥½ããªç¹å¾´ãåèè³æã®ãªã¹ãã¨
ã¯ããã« play-jsonã¯Play Frameworkã«å«ã¾ãã¦ããJSONãåãæ±ãããã®ã©ã¤ãã©ãªã§ããPlay Frameworkãå©ç¨ãã¦ããªãããã¸ã§ã¯ãã§ãplay-jsonãã©ã¤ãã©ãªä¾åæ§ã«è¿½å ããã°å©ç¨ãããã¨ãã§ãã¾ãã ãã®ã©ã¤ãã©ãªã¯ãé常ã«å¼·åãªJSONã³ã³ããã¼ã¿ãåãã¦ãã¾ããPlay Frameworkã使ã£ã¦ããæ¹ã«ã¨ã£ã¦ã¯ããªãã¿ã®ReadsWritesFormatã§ããã ä»åã¯ããããã®ã³ã³ããã¼ã¿ã«ã¾ã¤ããé »åºãã¿ã¼ã³ã5ã¤ã»ã©ãç´¹ä»ãã¾ãã ç®æ¬¡ åæç¥è 1. inmapãã¿ã¼ã³ 2. tupledãã¿ã¼ã³ 3. ããã©ã«ãå¤ãã¿ã¼ã³ 4. åæåãã¿ã¼ã³ 5. ç´ååãã¿ã¼ã³ å°ä¼æ¢: Readsã¨Writesã¯ã©ãã«ç½®ãï¼ åæç¥è æ¬å®¶ã®ããã¥ã¡ã³ããã¨ã¦ã詳細ãªããããããä¸éãèªãã°åºæ¬çãªä½¿ãæ¹ããããã¾ããã§ããä¸å¿ã以ä¸ã«ã
Scala Nativeã¯scalaã®ã³ã¼ãã(LLVMã®IRãçµç±ãã¦ï¼ãã¤ãã£ãã³ã¼ãã«ã³ã³ãã¤ã«ããAOTã³ã³ãã¤ã©ï¼Ahead Of Time Compilerï¼ã§ãããã®åå¨ã«ã¤ãã¦ã¯ãå°ãåã«ãµã¤ããã§ãã¦ãããã¨ã§ä¸é¨ã§è©±é¡ã«ãªã£ã¦ãã¾ããããScala Days 2016 NYCã«ã¦æ£å¼ã«å ¬éããã¾ãããç¾å¨ã¯Pre-Release段éã§ãããæ¢ã«ãµã³ãã«ã³ã¼ãã試ããããã«ãªã£ã¦ããã®ã§ãç°å¢ãæ§ç¯ãã¦ã¿ã¾ããï¼on Mac OSï¼ã scala-nativeã®ãªãã¸ããªãcloneãã $ git clone git@github.com:scala-native/scala-native.git --recursive git submoduleã¨ãã¦scala/scalaãæã£ã¦ããã®ã§ã--recursiveãä»ããã®ãå¿ããªãããã«ãã¾ãããã llvm(cla
ãã®æç« ã¯ããµã¼ããµã¤ãã®ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³éçºã«ããã¦ã社å å®ç¸¾ã®å°ãªãæ°ããè¨èªãæ¡ç¨ããã¨ãã«ã¤ã³ãã©é¢ã§èæ ®ãããã¨ã社å åãã«ã¾ã¨ãããã®ã§ãã ã¯ã¦ãªã§ã¯ãé·ããPerlã§ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³éçºãç¶ãã¦ãã䏿¹ãããæ°å¹´ã§ç¤¾å ã§Scalaã¾ãã¯Goã®æ¡ç¨äºä¾ãå¢ãã¦ãã¾ããã ä»å¾éçºãå§ã¾ããããã¯ãã«ããã¦ããPerlãScalaãGoãããã¯ä»ã®è¨èªãæ¡ç¨ãããã©ãããéçºéå§æã«é¸ã¶ãã¨ã«ãªãã§ãããã æ°è¨èªãæ¡ç¨ããã¨ãã«ãèæ ®ãã¹ããã¨ã®ä¸ã¤ã¨ãã¦ããã¤ã³ãã©ãã¸ã®å½±é¿ãããã¾ãã æ°è¨èªã«é¢ããéè«ããã¦ããã¨ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ã«ãã¤ã³ãã©ãã¸ã®å½±é¿ã«ã¤ãã¦èããã¾ãã ãããã¯ãã¦ã§ããªãã¬ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ããèæ ®ãããã¤ã³ããä¼ãããã¨ãããã¾ãã ScalaãGo以å¤ã«ãNode.jsããµã¼ããµã¤ãSwiftã¯ã©ããã¨ããã®ãéè«
ã¯ãã㫠人ã«ãã£ã¦æ§ã ãªæ¸ãæ¹ãã§ãã¦ãã¾ãã®ãScalaã æ¬è¨äºã§ã¯ãéä¹ãæ±ããfac颿°ãä¾ã«ãããã¤ãã®è峿·±ãããã°ã©ãã³ã°ã¹ã¿ã¤ã«ãç´¹ä»ãã¾ãã 以ä¸ã®ã³ã¼ãã¯ãREPLã§:pasteãããã¨ã§ãç°¡åã«åä½ã確èªã§ãã¾ãã æç¶ãããã°ã©ãã³ã° ç ´å£çæä½ããããããªãç·ãããããã°ã©ãã³ã°ã¹ã¿ã¤ã«ã def fac(n: Int) = { var result = 1 for (i <- 1 to n) { result *= i } result } åå¸°ã§æ¸ãããéãï¼ã¯ãï¼ã§ãã æ®éã®å帰 åå¦è æ³£ããã®å帰ã¹ã¿ã¤ã«ã def fac(n: Int): Int = if (n == 0) 1 else n * fac(n - 1) // å帰å¼ã³åºãã®å¤å´ã« * ã«ããæ¼ç®ããã ãã®ããã«æ¸ãã¨ã¹ã¿ãã¯ãã©ãã©ãæ¶è²»ããã®ã§ãå¾è¿°ããæ«å°¾å帰ã使ã£ãã»ããããã§
ã¾ã¨ã ãåçæ¹åããããã Akka Streams ã§åå®è£ ããã100åéããªã£ã話 #ScalaMatsuri #s.. ãããã Akka Streams ã§åå®è£ ããã100åéããªã£ã話 @negokaz 2018 pv 3 1 user ã¾ã¨ã 社å åå°å ¥ï¼Dockerç°å¢ä¸ã§ã®Play frameworkã¢ããªã±ã¼ã·ã§ã³éç¨è¨é² #ScalaMatsuri .. Dockerããã¼ã¹ã¨ããã¤ã³ãã©ä¸ã§ã®Play frameworkã¢ããªã±ã¼ã·ã§ã³æ¬çªéç¨ãã¦ã㦠@naokiainoya 3253 pv 6 1 user
The Study: Analyzing Subreddits for Positive or Negative sentiment Last week, I came across this excellent, semi-hilarious informal study by Tobias Hermann, aka Dobiasd, which digs into 20+ programming languages and reviews the conversations, comments and sentiments from their respective subreddit feeds (WARNING: this may be NSFW due to profanity recorded by users). Regardless, I loved what I saw,
調æ»ï¼Subredditsã«æç¨¿ãããè¯å®çã»å¦å®çæè¦ã®åæ å é±ãç§ã¯ ç´ æ´ãããã¦ãå°ãç¬ããéå ¬å¼ã®èª¿æ» ãå¶ç¶è¦ã¤ãã¾ãããããã¯Tobias Hermann(ãã³ãã«ãã¼ã 㯠Dobiasd )ãè¡ã£ã調æ»ã§ãsubredditã®ãã£ã¼ããã20以ä¸ã®ããã°ã©ãã³ã°è¨èªã«é¢ããã¹ã¬ãããæ¢ãåºããã¦ã¼ã¶å士ã®ããã¨ããã³ã¡ã³ããæè¦ãå度è¦ç´ãããã®ã§ãï¼è¦åï¼ã¦ã¼ã¶ã«ããä¸é©åãªæç¨¿ãããã®ã§ãè·å ´ã§ã®é²è¦§ã«ã¯æ³¨æãå¿ è¦ã§ãï¼ãããã§ããç§ã¯Tobiasã®èª¿æ»å 容ãã¨ã¦ãæ°ã«å ¥ããTypesafeã®ããã°ã«è¨äºã®æç¨¿ãæè¨ºãããããããã¦ããªãå½¼ããã®ãããªè峿·±ãå®é¨ãè¡ã£ãã®ãã®çç±ãèãããã«ãå½¼ã«ã³ã³ã¿ã¯ããåãã¾ãããå½¼ã¯ã¨ã¦ãè¬èã§ãããªããããã®è¿äºããã¯å¥½å¥å¿ãã¿ãªãã£ã¦ãããã¨ãæãããã¾ããã以ä¸ãTobiasããã®è¿äºã§ãã âæ£ç´ãã©ããã¦ç§ããã®ãã
ã¯ããã« é¢æ°åã¨ããã°ã¢ãããã¢ããã¨ããã°é£ããã¨ããäºãå··ã§è¨ããã¦ãã¾ããããããªãã¢ãããçè§£ãããã¨ããããé£ããæããã ãã§ãåè«ããé åºã追ã£ã¦çè§£ãã¦ããã°å ¨ç¶é£ããç¡ããã ãã£ã¦äºãåãã£ã¦è²°ããã°ãããªãã¨æãæ¸ãã¦è¦ããã¨ã«ãã¾ããã ãã ãåè«ã¨ãã£ã¦ãé©ç¨ç¯å²ãã¨ã£ã¦ãåºããå¿ç¨ç·¨ã«ãªãã¨åãããããªããªã£ã¦ããã®ã§ãããã§ã¯ããã°ã©ãã³ã°åéã«ç¹åããFP(functional programing)åè«*1ã«ã¤ãã¦æ¸ãã¾ãã ã¾ãã説æãç°¡åã«ããçºã«ç´°ããé¨åãããããçç¥ãã¦ãã¾ããå¦è¡çãªå®ç¾©ã¨ãã¦ã¯æ£ç¢ºã§ã¯ãªãã®ã§ããã®ã¨ã³ããªã®èª¬æã¯å¤§ä½åã£ã¦ãä½ã®æ°æã¡ã§èªãã§ãã ãããã å°ãã¼ãã¯åè«ã®è©³ããäºã¯ãã£ã±ãåãããªãã®ã§ãå¦åçãªè©±ãæ¯ããã¦ãåçã§ãã¾ããï½·ï¾ï½¯ åã£ã¦ãªããªã®ï¼ åè«ã¨è¨ãã°ãåã§ãã åã£ã¦ä½ãªã®ãã¨ããã¨ã対象(obje
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}