プログラミング言語の基礎概念を学んでる - はこべブログ ♨ ã®ç¶ãã§ãã
åã®è¨äºã§ã¯ãããã°ã©ãã³ã°è¨èªã®åºç¤æ¦å¿µã¨ããæ¬ãç´¹ä»ããããã®æ¬ã§ã¯å¦ãã ãã¨ã確èªããããã«ãS(S(Z)) + Z evalto S(S(Z))
ã®ãããªå¼ãæ£ãããã¨ããä¸ããããæ¨è«è¦åã«ãã¨ã¥ãã¦å°åºããã¨ããç·´ç¿åé¡ãç¨æããã¦ãããããããæ¬ã®ä¸ç¤ãããã®åé¡ãã人éãããã°ã£ã¦æã§è§£ãã®ãè¾ããªã£ã¦ããã( ä¾ãã°ããããã®ãä¸å¯§ã«æ¸ããªãã¨ãããªã https://gist.github.com/hakobe/860fd1dd9c56c1d33a33 )
ååã®è¨äºã«ã¤ããããã¯ãã¼ã¯ã®ä¸ã§ãid:OKU_s62 ããã以ä¸ã®ããã«ãã£ããã¦ããã
å¾åã®åé¡ã®å°åºæ¨ãæ¸ãã®ã¯äººéæ¥ã§ã¯ãªãã®ã§ãå°åºæ¨ãçæããããã°ã©ã ãæ¸ãã¾ããã
http://b.hatena.ne.jp/OKU_s62/20140714#bookmark-205135689
ãªãã»ã©ããããã«ãã¨ãããã¨ã§ãåé¡ã解ãããã°ã©ã ãä½ã£ã¦ã¿ããæ¬ã®ä¸ã§èª¬æããã¦ããEvalML3ã¨ããè¨èªã®å¼ããããã«ããtextareaã«ä¸ããã¨å°åºæ¨ãä½ã£ã¦åºåãã¦ããããåºåãã本の演習システムã«ã³ããããã¨æ£è§£ã¨ããå¤å®ã«ãªãã¯ãã
ä¸ã®textareaã®ä¸èº«ãé©å½ã«å¤æ´ããã¨å°åºæ¨ãå¤ããã®ã§ããããããããµã³ãã«ã«ããã¤ãEvalML3ã®å¼ããªã¹ããã¦ããã®ã§ãã³ããããã¨ããããã
y = 3 |- let add = fun x -> y + x in add 5
|- let twice = fun f -> fun x -> f (f x) in twice twice (fun x -> x * x) 2
|- let rec fib = fun n -> if n < 3 then 1 else fib (n - 1) + fib (n - 2) in fib 5
人éãããã¨è¾ãåé¡ããã°ããçµæãè¿ã£ã¦ãã¦ããããããããã£ããããæ°ãè¨ç®ãã¦ãå¼ã¨ã絶対æã§ãããããªãã£ããå©ãã£ãã
CoffeeScriptã§ããã¨éãªæãã«å®è£ ãããã©ããããåãã¦ãããã½ã¼ã¹ã³ã¼ãã¯ãhakobe/copl · GitHubã«ããã¦ããã
å®è£
ã¯ãå
¥åããå¼ããã¼ã¹ãããã¨ãASTããã©ããªããè¨ç®ãå®è¡ãã¤ã¤ãåæã«å°åºæ¨ãä½ããã¨ãã風ã«ãªã£ã¦ããã»ã¼ã¤ã³ã¿ããªã¿ãä½ã£ãã¨è¨ãæãã«ãªã£ããæ¬ã«ã¯ããã¼ãµãæ¸ãããã®å³å¯ãªBNFã¯æ¸ããã¦ããªãã®ã§ãèªåã§é©å½ã«BNFãèãã¦ãã¼ã¹ããã®ã ãã©ãBNFãè¦ãã ãã§LLææ³ãªã®ãLRææ³ãªã®ããå¤å®ããç¥èããªãã£ãã®ã§å°ã£ããid:tarao å
çæ°ããLALRã®ãã¼ãµãããã°ååãªã¯ãã¨ã®ãã¨ã ã£ãã®ã§ãjisonã¨ããJavaScripç¨ãã¼ãµã¸ã§ãã¬ã¼ã¿ã使ããã¨ã«ãããjisonã¯CoffeeScriptããã¼ã¹ããã®ã«ã使ããã¦å®ç¸¾ããã£ã¦ãã»ã¼bisonã¨åããã¨ãã§ãã¦é«æ©è½ãææ³ã¯ãこういう感じにã«æ¸ããã
å®ã¯ãä»å®ç¾©ãã¦ããææ³ã«ã¯shift/reduce conflictãæ®ã£ã¦ããä¾ãã°ããã¼ãµã1 + f ã¾ã§èªãã§ã次ã®ãã¼ã¯ã³ã3ã ã£ãã¨ãã«ã1 + f ã§reduceãããã1 + f 3 ã®ããã«ã¿ãªãããã«shiftããããææ§ã«ãªã£ã¦ããã£ã½ããããã¯EvalML3ã®é¢æ°é©ç¨ã®ææ³ãåå ãªã®ã¯ããã£ã¦ã(このへん)ãçµå±è§£æ±ºæ¹æ³ã¯ããã£ã¦ãªããè¡çªããå ´åã¯shiftãåªå ã«ãªãããããæå³ã©ãããªã®ã§æ¾ç½®ãã¦ããã©ããªãã¨ããããã¨ããæ°æã¡ã¯æ®ã£ã¦ãã
æ¬é¡ã¨ã¯é¢ä¿ãªããã©ããã¨ãã¨æå ã®Node.jsã§åããã¦ãããã¦ããã³ã¼ãããbrowserifyã§ãã©ã¦ã¶ä¸ã§åããã¨ããã®ããã£ã¦ã¿ããgulp, TypeScript, Browserify で Chrome 拡張を書く - 詩と創作・思索のひろばãã¨ãã¦ãåèã«ãªã£ããæ§æå®ç¾©ãã³ã³ãã¤ã«ããããcoffeeã®ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã¨ããã®ãããã®ã§ãgulpã§ãã«ãã®ä»æ¹ãè¨è¿°ãã¦ã¿ã¦ãã(このへん)ã
æ¬ã¯ã¾ã éä¸ã§ä»å¾å°ãã¥ã¤è¨èªãæ¡å¼µããã¦ããã®ã ããã©ãããã«åããã¦ãã®ããã°ã©ã ãæ¡å¼µãã¦ããã°ãæ¼ç¿åé¡ãä½è£ã§è§£ããã¯ãã人éãã³ã³ãã¤ã«ããã®ã¯ã¾ã¡ãã£ã¦ãã®ã§ãèªååæåãã¦ããã£ãã

ããã°ã©ãã³ã°è¨èªã®åºç¤æ¦å¿µ (ã©ã¤ãã©ãªæ å ±å¦ã³ã¢ã»ããã¹ã)
- ä½è : äºååµæ·³
- åºç社/ã¡ã¼ã«ã¼: ãµã¤ã¨ã³ã¹ç¤¾
- çºå£²æ¥: 2011/07
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 6人 ã¯ãªãã¯: 60å
- ãã®ååãå«ãããã° (12件) ãè¦ã