haskell-ja > Archives > 2010/12/07

2010/12/07 06:45:47 UTCshiro
#
面白いじゃなイカ? http://d.hatena.ne.jp/tanakh/20101206#p1
#
元ネタに比べて型で遊ぶネタが少ないじゃなイカ? と思って遊んでみようとしたけど漢字は型名やコンストラクタ名に使えなかったでゲソ
2010/12/07 06:55:36 UTCshelarcy
#
日本語は小文字扱いなので、一文字目に大文字のアルファベットを入れる必要があるでゲソ
#
-- これはダメ
-- data イカ娘 = イカ娘
#
[1 of 1] Compiling Main             ( Test.hs, interpreted )

Test.hs:1:11: Not a data constructor: `、ォ'
Failed, modules loaded: none.
Prelude>
#
-- これなら大丈夫
data Tイカ娘 = Dイカ娘
#
Prelude> :r
[1 of 1] Compiling Main             ( Test.hs, interpreted )
Ok, modules loaded: Main.
#
あっ、最初の data イカ娘 = イカ娘 がコメントアウトされているじゃなイカ
#
-- これはダメ
data イカ娘 = イカ娘
#
のつもりだったでゲソ
#
データ構成子の最初の文字に日本語を使いたい人は、preprocessor を書くか、Haskell' に掛け合う必要があるでゲソ http://hackage.haskell.org/trac/ghc/ticket/1103#comment:9
2010/12/07 08:11:46 UTCnobsun@twitter
#
型構成子,値構成子はともに大文字ではじまらなければならない.isUpperがTrueでないといけないんでやんす.日本語文字はisUpperがFalseなのでNGで下足.
2010/12/07 08:14:10 UTCshiro
#
へい。それは承知でゲソ。けれど語頭の大文字小文字でトークンを区別する限界を見たような気がしたでゲソ。
2010/12/07 08:49:48 UTCshelarcy@twitter
#
pre-processor で頑張らなイカ? http://haskell.org/ghc/docs/7.0.1/html/users_guide/options-phases.html http://bit.ly/hjzak6
#
e.g. http://chrisdone.com/posts/2010-11-25-lisk-lisp-haskell.html
2010/12/07 09:01:50 UTCshelarcy@twitter
#
……と pre-processor プログラムを書けば問題を回避できるものの、確かにこれが大文字小文字による区別の限界でゲソ。
2010/12/07 09:51:53 UTCnobsun@twitter
#
トークンを区別する必要があること自体なんだかななんですねぇ、これは。
2010/12/07 10:08:12 UTCshiro
#
まあでもASCIIで書いてる限りは見やすいのは確かだしなあ>大文字小文字。ここはいっそ、タイプフェースで区別するとか。(型|値)構成子はボールドにする。