Haskell Relational Record (HRR)å°»å©ãæ å½ã®å±±æ¬ã§ãããã®è¨äºã§ã¯ãHRR ã®ãªãªã¼ã¹ã«ã¤ãã¦èª¬æãã¾ãã
ãªãããã㯠Haskell Advent Calendar 2014 ã®25æ¥ç®ã®è¨äºã§ãã
HRR ã¨ã¯ä½ãï¼
HRRã¯ãæ¥æ¯éãããä¸å¿ã¨ãªã£ã¦éçºãé²ãããã¦ããé¢ä¿ä»£æ°ã©ã¤ãã©ãªã§ããHaskellã§å¼ãæ¸ãã¨ããããSQLæã«å¤æããããã¼ã¿ãã¼ã¹ã«åãåãããçµæã Haskell ã®ã¬ã³ã¼ãã«ãªãã¾ãã以ä¸ã®ãããªç¹é·ãããã¾ãã
- æ½è±¡çï¼é«ã¬ãã«ãªå¼ã§è¡¨ç¾ããã¨ãSQLãçæããã¾ãã対å¿ãã¦ãã SQLãµã¼ãã¯ãDB2ãProsgreSQLãSQLiteãMySQLãMicroSoft SQL Server ããã³ OracleSQL ã§ãã
- åå®å ¨ï¼HRRã®å¼ãæ¸ããHaskellã®ã³ã¼ããã³ã³ãã¤ã«ã§ããã°ãå¿ ãæ£ããSQLæãçæããã¾ãããã¬ã¼ã¹ãã«ãã¼ã«ãåãä»ãã¾ãã
- åæå¯è½ï¼å¼ãåæãã¦ããã大ããªå¼ãä½æã§ãã¾ãã
- èªåçï¼ã³ã³ãã¤ã«æã«ç®çã®ãã¼ã¿ãã¼ã¹ã¸åãåããã¦ãSQLã¹ãã¼ããèªåçã«åå¾ããã¬ã³ã¼ãã®å®ç¾©ãèªåçæãã¾ãã
HRRã¯ASAHIãããã®å é¨ã·ã¹ãã ã§1年以ä¸ç¨¼åãã¦ããããã®å質ã¯å®å®ãã¦ãã¾ãã
ãªãªã¼ã¹å宿
æ¬å½ãªãã1å¹´åã日比野さんが Haskell Advent Calendar 2013 の記事を書いたããã«ãHRR ããªãªã¼ã¹ãã¹ãã ã£ãã®ã§ãããå¤å¿ã«è² ãã¦ã§ãã¾ããã§ãããæè¿ã§ã¯ãã¨ã¼ãããæ¹é¢ããããªãªã¼ã¹ã®è¦æãåºãããã«ãªã£ã¦ãã¾ãããããã§ã12æ11æ¥ãã12æ¥ã®éãå±±æ¬ãä½ãã§ãããã³ã·ã§ã³ã®ã²ã¹ãã«ã¼ã ãåãã¦ãæ¥æ¯éãããå¤å¤§ãªè²¢ç®ããã¦ããæå±±ãããããã¦å±±æ¬ã®ä¸äººã§å宿ãå¼µã¾ãã¾ããã
å宿ã¾ã§ã®å®¿é¡
å宿ã¾ã§ã« HRR ã Hackage ã«ç»é²ããããã«æ¥æ¯éããã«ãé¡ããã¾ããããã©ãã©ã«ãªã£ã¦ããè²¢ç®ãããã³ã¼ããããéããå½¢ãæ´ã㦠Hackage ã«ç»é²ããä½æ¥ã¯ãã¨ã¦ã大å¤ã ã£ãããã§ãã
ãªãªã¼ã¹ããã¨ãããã¨ã¯ãããã¥ã¢ã«ãæ¸ããªãã¨ããã¾ãããæãããã¥ã¼ããªã¢ã«ãæ¸ããã¨ãã話ããã¦ãã¾ããããã¥ã¼ããªã¢ã«ã§ã¯ãç´æ¥SQLã§æ¸ããããªé£ãããã¨ãæ¸ãããã¨ã示ãããã«ãå®è·µçãªä¾é¡ãè¼ãããã¨æã£ã¦ãã¾ããããã®ä¾é¡ã¯ãå®éã®ãã¼ã¿ãã¼ã¹ã«å¯¾ãã¦åãã¹ãã§ãã
ããã§ãã初めてのSQLãã«è¼ã£ã¦ããSQLãHRRã§æ¸ãã¡ããä½æ¦ãä¸å¹´åããå§ã¾ã£ã¦ãã¾ãããå½æã®HRRã¯ããªã¼ãã³ã½ã¼ã¹ã® SQL ãã¼ã¿ãã¼ã¹ãµã¼ãã¨ã㦠PostgreSQL ãããµãã¼ããã¦ãã¾ããã§ãããä¸æ¹ã§ãåãã¦ã®SQLãã¯ãMySQL ãåæã¨ãã¦ãã¾ãããµãã¼ããã¼ã¸ã§æä¾ããã¦ãããã¼ãã«ãçæããã¹ã¯ãªããã¯ãå½ç¶ã®ããã« PostgreSQL ã§ã¯åãã¾ãããããã§æ¨å¹´ãå±±æ¬ã PostgreSQL ç¨ã«æ¸ãç´ããä¾é¡ã®ãã¼ãã«ãä½æããããã«ãã¾ãããã¾ãããã®ãã¼ãã«ã«å¯¾ãã¦åãSQLãããã¤ãé¸å®ãã¾ããããããæå±±ããã HRR ã«å¤æãã¦ããã¦ãã¾ããã
ä»åãã¥ã¼ããªã¢ã«ã®ä½æ¥ãåéããã«ããããå±±æ¬ãPostgreSQLã®åããæ¹ããã£ããå¿ãã¦ãããã¨ããã㦠HRR ã SQLite ããµãã¼ãæ¸ã¿ã ã£ããã¨ãããMySQL ç¨ã®ã¹ã¯ãªãããä»åº¦ã¯ SQLite ç¨ã«æ¸ãç´ãã¾ãããSQLite ã使ã£ã¦ãã¥ã¼ããªã¢ã«ãæ¸ãæ¹ããæç¶æ·å± ãä¸ããããã§ãã
æå±±ããã¯ãå¤ããªã£ã¦ããHRRã®ä¾é¡ãSQLiteã§åãããã«ããä½æ¥ããã¾ãããSQLite ã«ã¯ãä¾ãã°æ¥ä»ãªãã©ã«ãããã¾ãããããã°ã¡ããã¨åãä»ãã®ã§ããããªãã®ã§æååæä½ã§èª¤éåãå¿ è¦ãããã®ã§ãã
å宿1æ¥ç®
HRRã®ããã¸ã§ã¯ããã¼ã¸ã®ä½æã«ã¯ãgithub Page ã使ããã¨ã«ãã¾ãããããã¦ã³ã³ãã³ãã¨ãã¦ã¯ãã¯ã¤ãã¯ã¹ã¿ã¼ãããã¥ã¼ããªã¢ã«ãä¾é¡éãããã³ããã¥ã¢ã«ãç½®ããã¨ã«ãã¾ããã
1æ¥ç®ã®ææã¨ãã¦ãHRRのプロジェクトページã¨クイックスタートãã§ãã¾ãããã¯ã¤ãã¯ã¹ã¿ã¼ãã§ã¯ãå¼ãåæã§ãããã¨ãè¦ãããã£ãã®ã§ãå¼ hello 㨠world ã使ã£ã¦ helloWorld ãæ§ç¯ã§ãããã¨ã示ãã¾ããã
å宿2æ¥ç®
チュートリアルãã§ãã¾ããã1å¹´é ããã®ã¯æªããã¨ã§ããããã®ããã㧠SQLiteã使ã£ã¦èª¬æã§ãã¾ããããããã説æããå¿ è¦ã¯ã¾ã£ãããªããªãã¾ããããã¨ãã°ãä¾é¡ãåãããå¾ã«ãã¼ãã«ãæ¶ããããªã£ãããåã«ãã¡ã¤ã«ãæ¶ãã°ããã®ã§ãã
ã¾ãã例題ãããã¤ãå ¬éã¾ãããããã¦ãæ¥æ¯éãããå宿ä¸ã«è²ã¦ãマニュアルã«ãªã³ã¯ãè²¼ãã¾ããã
ãªãªã¼ã¹
ããã¦ãã¤ãã«æ¥æ¯éãããhaskell-cafe に対してリリースのアナウンスããã¾ããã
ä¾é¡ã®æ´æ°
ä¾é¡ãæ´æ°ãããã¨ãã¦ãã¾ããæ¿å ¥ãæ´æ°ãåé¤ãããã³ç¸é¢ãµãã¯ã¨ãªãªã©ãå¢ããäºå®ã§ãã
ãããªãå±é
HRRã®ãªãªã¼ã¹ãããããã§ãç波大å¦ã®äºå±±ç 究室ã®ç®ã«æ¢ã¾ããæ¬æ¥ç波大å¦ã¸åºããã¦è°è«ãã¦ãã¾ããã
ä»å¾ã®åã®ä»äºã¯ãè«æãæ¸ãããæ¥æ¯éããã®ãå°»ãå©ããã¨ã«ãªãããã§ãã