颿°åããã°ã©ãã³ã°èšèªF#
ååã¯ASP.NET AJAXã«ãããè¿œå æ©èœãèŠãã®ã§ãä»åã¯ããã°ã©ãã³ã°èšèªã«ãããæ°æ©èœã«ã€ããŠèŠãŠã¿ããã
ãŸãã¯VBãC++ãC#ã«å ããŠãVisual Studio 2010ããæ°ããå ãã£ãããã°ã©ãã³ã°èšèªF#ãåãäžãããF#ã¯é¢æ°åèšèªã®OCaml(Objective Camlããªãã£ã ã«)ãšäŒŒãæ§æãæã€ããã°ã©ãã³ã°èšèªã§ããã
颿°åèšèªãšãããšLispãHaskellãªã©ãæåã ãã䜿ã£ãããšããã人ã¯ããã»ã©å€ãã¯ãªããããããªããããããæ°ããããã°ã©ãã³ã°èšèªãåŠç¿ããªããŠããä»äœ¿ã£ãŠããããã°ã©ãã³ã°èšèªã§ååã ããšèããäººã®æ¹ãå€ãã ããã
ããããC#ã«åãå ¥ããããå¿åããªã²ãŒããã©ã ãåŒãªã©ã¯ã確å®ã«é¢æ°åèšèªã®åœ±é¿ãåããŠããããAjaxã®æ®åãšãšãã«å©çšè ãå¢ããŠããJavaScriptãã颿°åèšèªã®ãšãã»ã³ã¹ã倧ãã«åãå ¥ããŠããããããã£ãæå³ã§ã¯ã颿°åèšèªã¯ä»éåžžã«ãããã ãšèšããã®ã ã
ãŸãã.NET Frameworkã®ç¹æ§äžãããŸããŸãªèšèªãçµã¿åãããŠã·ã¹ãã éçºãè¡ãããšãã§ããããšããããšã¯ãF#ã§éçºããDLLãC#ããåŒã³åºãããšãã§ããã®ã ããã®ãããç¹å®ã®ã³ã³ããŒãã³ãã ããF#ã§éçºããããšãããããªäœ¿ãæ¹ãã§ããããã§ããã
C#ãVBãšã¯ãŸã£ãããã©ãã€ã ãç°ãªãèšèªãªã®ã§ãåãã¯éåæãèŠãããããããªããããã²äžåºŠF#ãè§Šã£ãŠã¿ãããšããããããããããF#ã䜿ãããªãããšãã§ããªãã£ããšããŠããæ¬æ Œçãªé¢æ°åèšèªã«è§ŠããŠããããšã¯ãC#ãJavaScriptãããæ·±ãçè§£ããããã«ãå¿ ã圹ç«ã€ããã ã
F#ã®åºæ¬ææ³
ããã§ã¯ãF#ã§ã®ãµã³ãã«ããã°ã©ã ãå°ãã ãèŠãŠã¿ãããšã«ãããã
VS 2010ã§F#ã®ãããžã§ã¯ããäœæããå Žåã¯ãVBãC#ã§ãããžã§ã¯ããäœãå Žåãšåãããã«ãã¡ãã¥ãŒã®[ãã¡ã€ã«]ïŒ[æ°èŠäœæ]ïŒ[ãããžã§ã¯ã]ãã¯ãªãã¯ãããVisual F#ãã®ãF# Applicationããéžæããã°ããã
|
|
ã¡ãã¥ãŒã®[ãã¡ã€ã«]ïŒ[æ°èŠäœæ]ïŒ[ãããžã§ã¯ã]ãããVisual F#ãã®ãF# Applicationããéžæ |
ã§ã¯ããŸããæ±ºãŸãã®Hello WorldããäœæããŠã¿ãããèšè¿°ããã³ãŒãã¯æ¬¡ã®ããã«ãªãã
let s = "Hello";;
printfn "%A" s;;
ã³ãŒããèšè¿°ããããã¡ãã¥ãŒã®[ãããã°]ïŒ[ãããã°ãªãã§éå§]ãã¯ãªãã¯ããã°ããã«ããè¡ããããHelloããšããçµæã衚瀺ãããã
ããã§è¡ã£ãŠããã®ã¯ã倿°ãžã®ä»£å ¥(æçž)ãšé¢æ°ã®åŒã³åºããšããæãåºæ¬çãªåŠçã§ããã
ãŸãã倿°ãžã®ä»£å ¥ã¯ãletããšããããŒã¯ãŒãã䜿çšããŠãlet 倿°å = å€ããšããããã«èšè¿°ããããŸãã颿°ãžåŒæ°ãæž¡ããšãã«ã¯ã«ãã³ã¯äœ¿ããªããã颿°åãåŒæ°1ãåŒæ°2...ããšããåŒã³åºãæ¹ã«ãªãããããŠãprintfnãšããã®ã¯F#ã«ãããprintfã®ãããªé¢æ°ã§ããã
ã€ãŸããã®ããã°ã©ã ã¯ãã倿°sã«Helloãšããæååãä»£å ¥ããåŸã倿°sã®å€ã衚瀺ããããšããæå³ã«ãªãããŸããåœä»€æã®åºåãã«ã¯ã;;ãã䜿çšãã(泚:ãã ãã;;ãã䜿çšããªããŠãæã®åºåãã ãšèªèããŠãããã±ãŒã¹ããã)ã
ãããŸã§èŠããšããŸãVBãC#ãšã¯2ã€ã®ç¹ã§å€§ããç°ãªãããšãåããã ããã
ãŸã1ç¹ç®ã®éãã¯ã¯ã©ã¹ãå¿ ãããå¿ èŠãšããªãããšã§ããããã¡ããF#ã§ãã¯ã©ã¹ã¯å©çšå¯èœã ãããããã¬ãã«ãã¯ã©ã¹ã§ãªããã°ãªããªããšããå¶çŽã¯ãªãããããã£ãæå³ã§ã¯RubyãPythonã®ãããªã¹ã¯ãªããèšèªã«è¿ããšãèšããã ããã
2ç¹ç®ã®éãã¯ã倿°ã®åãã®æ±ãã§ããããlet s = "Hello";;ããšããåœä»€æãèŠãéãã§ã¯ãã©ãã«ã倿°ã®åãæå®ãããŠãªãããã®ãããã±ã£ãšèŠãæãã§ã¯åçåä»ããããŠããããã«æããããããããªãã
ããããF#ã¯åçåä»ãã®èšèªã§ã¯ãªããF#äžã§ã¯ã倿°sã¯stringåã®å€æ°ãšæ±ãããŠãããåŸã»ã©ããå°ã詳ããèŠãããããããåæšè«ããšããä»çµã¿ã§ãããåæšè«ã®ãããã§ã匷ãåä»ãã®ã¡ãªããã享åãã€ã€ãç°¡æœãªãœãŒã¹ã³ãŒãã§æžãŸããããšãã§ããã®ã ãåæšè«ã¯ãF#ã«ãããäž»èŠãªç¹åŸŽã®1ã€ãšèšããã ããã