The Glorious Glasgow Haskell Compiler.

The Glorious Glasgow Haskell Compiler.
ãã¦ãWrightã®è«æã®å½æã¯ãvalue restrictionã¯å¦¥å½ãªå¶éã ã£ãããªããªãã°ãvalue restrictionã®ããã§åä»ãã§ããªããªã主ãªã±ã¼ã¹ã¯ãå¤ç¸é¢æ°ã®é¨åé©ç¨ãã¾ãå¤ç¸é¢æ°ã«ãªãï¼ã¯ãã®ï¼å ´åãããã§ãããã¯let x = eã®eãfun y -> e yã®ããã«æ¸ãæãããã¨ï¼Î·å±éï¼ã§åé¿ã§ããããã§ããã ã¨ããããSML#ã®ãããªå¤ç¸ã¬ã³ã¼ããOCamlã®ãããªå¤ç¸ãªãã¸ã§ã¯ããªããå¤ç¸ããªã¢ã³ããå©ç¨ããã¨ãvalue restrictionãæ¬å½ã«åé¡ã«ãªã£ã¦ããããã¨ãã° # let f x = `V x ;; val f : 'a -> [> `V of 'a ] = <fun> # let v = f 1 ;;ãªã©ã§ãvãpolymorphicã«ãªããªãã¨ãããããï¼å®è³ªçã«ï¼å¤ç¸ããªã¢ã³ããè¿ãé¢æ°ã¯æ¸ããªãããã¨ã«ï¼äºå®ä¸ï¼ãªã£ã¦ãã¾
ã¨ããããã§å¤§ä½ã®è§£èª¬ã MLã®å¤ç¸åæ¨è«ã¯ãlet x = eã®ãããªå®£è¨ããã£ãããeã®åãæ¨è«ãã¦ãã決ã¾ããªãã£ããé¨åã¯ãä½ã§ããããã¨è§£éããå ·ä½åãããªãã£ãåå¤æ°ã«ã¤ãã¦âãå é ã追å ããããã¨ãã°ã let id = fun y -> yã ã£ãããfun y -> yã®åãαâαã®ããã«æ¨è«ãããã®ã§ãidã®åã¯âα.αâαã«ãªãããã ããOCamlãSML/NJã§ã¯ãâα.ã¯çç¥ããã表示ãããªãã ã¨ããããç ´å£çä»£å ¥ãcall-with-current-continuationãªã©ãå¯ä½ç¨ãã®ããè¨èªã§ã¯ãä¸è¿°ã®åæ¨è«ã¯ä¸å¥å ¨ã«ãªãããã¨ãã° let polyref = ref []ã«ããã¦polyrefã®åãâα.α list refã¨æ¨è«ããã¦ãã¾ã£ããã polyref := [true]㨠123 + List.hd !polyrefã両æ¹ã¨ãåä»ãã§ãã¦ã
è¦ããã§ããå°±è·æ°·æ²³æä¸ä»£ãæ¯ããããã²ããããã親ã®é«é½¢åãå¿èº«ä¸èª¿ã®40ï¼50代â¦å®æ°é£æºã§æ¯æ´å å®
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}