…L@ b³p$˜å€X K"Y^ÒšTy"È¡a"²*µöz½0uü°êN(x`¶X@‘…”vAFZ0
¹ãw\œ™®ÞÞòØÂ†êð'ŠX`mC#¨ø¨nÝYæ_š®ÉÃøåZnKÝlUÏœY#¦bid#ddates2022-06-22T23:55:00etitlexc効果ãŒç”±æ¥ã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã€ŒKokaã€ã®å‰¯ä½œç”¨åž‹ã€Geo3x3 86言語目実装PRdtagsg#geo3x3curlxhttps://fukuno.jig.jp/3619dbodyyc
精度付ã緯度経度表ç¾ã€ŒGeo3x3ã€ã®86言語目ã®å®Ÿè£…ã¨ã—ã¦ã€ãƒžã‚¤ãƒã‚½ãƒ•ト社ã«ã‚ˆã‚‹é–‹ç™ºä¸ã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã€ŒKokaã€ãŒåŠ ã‚りã¾ã—ãŸï¼mitsujiã•ã‚“ã€PR(プルリク)ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼
ã¾ã 開発ä¸ã®ã“ã®è¨€èªžã®ç‰¹å¾´ã¯å‰¯ä½œç”¨ã®åž‹åŒ–。プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®ä¸–界ã§ã€é–¢æ•°å†…ã§ç™ºç”Ÿã™ã‚‹ç”»é¢è¡¨ç¤ºãªã©ã¯å‰¯ä½œç”¨ã¨å‘¼ã°ã‚Œã¾ã™ãŒã€Kokaã§ã¯ãれを型ã¨ã—ã¦æ˜Žç¤ºã—ã¾ã™ã€‚
「The Koka Programming Languageã€
「効果ã€ã¨æ—¥æœ¬èªžè¡¨è¨˜ãŒç›®ç«‹ã¡ã¾ã™ãï¼
サクッ㨠brew 㧠Koka をインストール
brew install koka
例ãˆã°ã€ã“ã¡ã‚‰å‰²ã‚Šç®—ã™ã‚‹é–¢æ•°ã‚’呼ã³å‡ºã™Kokaã®ãƒ—ãƒã‚°ãƒ©ãƒ
fun div(x: int, y: int): int { x / y } fun main() { div(10, 3).println }
funã¯é–¢æ•°ã€åž‹ã¯TypeScript風ã§å¾Œç½®ã€returnã¯çœç•¥å¯ã€‚test.kkã¨ã—ã¦ä¿å˜ã—
koka -e test.kk
ã¨ã—ã¦ã€ã‚³ãƒ³ãƒ‘イル&実行。
関数divã«ã€ãƒ‡ãƒãƒƒã‚°å‡ºåŠ›ã‚’è¿½åŠ ã—ã¦ã¿ã¾ã™ã€‚
fun div(x: int, y: int): int { y.println x / y }
ã™ã‚‹ã¨ã€ã‚³ãƒ³ãƒ‘イル時ã«ã‚¨ãƒ©ãƒ¼
error: effects do not match
関数ã®åž‹ã«ã€<console> ã‚’è¿½åŠ ã™ã‚‹ã¨
fun div(x: int, y: int): <console> int { y.println x / y }
コンパイル&実行ã€å†ã³ã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚例外ãŒç™ºç”Ÿã™ã‚‹å ´åˆã¯ <exn> を使ã„ã€ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã¨ä¾‹å¤–ã€ä¸¡æ–¹ç™ºç”Ÿã™ã‚‹å ´åˆã¯ä¸‹è¨˜ã®ã‚ˆã†ã«ä¸¡æ–¹æŒ‡å®šã—ã¾ã™
fun div(x: int, y: int): <console, exn> int { y.println if (y == 0) { throw("divide by zero!") } x / y }
使ã£ã¦ã¿ãŸããªã‚Šã¾ã—ãŸï¼Ÿè‡ªåˆ†ã®ã‚ˆã使ã†è¨€èªžã®Geo3x3実装ã¨ã€Kokaã§ã®å®Ÿè£…「geo3x3.kkã€ã€è¦‹æ¯”ã¹ã¦ã‚»ãƒ«ãƒ•相性診æ–ã—ã¦ã¿ã¾ã—ょã†ï¼
プãƒã‚°ãƒ©ãƒ 内ã§ã®ãƒ–ãƒãƒƒã‚¯ã®æ›¸ãæ–¹ã¯ã€Geo3x3ã®å®Ÿè£…ã®ã‚ˆã†ã«Pythoné¢¨ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã§æ›¸ã„ã¦ã‚‚ã€æœ¬ãƒ–ãƒã‚°ã®ã‚ˆã†ã«æ³¢ã‚«ãƒƒã‚³ã¨ã‚»ãƒŸã‚³ãƒãƒ³ã‚’使ã£ãŸJavaScripté¢¨ã«æ›¸ã„ã¦ã‚‚ã„ã„ãƒã‚¤ãƒ–リッド型。
ã©ã¡ã‚‰ã®æµæ´¾ã®äººã«ã‚‚入りやã™ã„ï¼