らくがき

2008/03/12

#light は要注意

いろんなサンプルに「#light」って記述されているけど、これ、かなりのクセモノかも。 「#light」ありの場合は、変数の同時束縛ができないみたい
let x = 1 and y = 2   // Syntax error
「#light」なしの場合は、普通にOK
let x = 1 and y = 2
"in" とか書かなくていいからよさげ?と思っていたのも束の間 見事にはまりました 玄人から言わせれば 「同時束縛なんぞ 使う機会ない」 ってことかな? それか、別の記述方法があるのか… ナゾナゾ
2008/03/13 - #light 慣れれば素敵かも?
別の記述方法があった!
let x = expr
and y = expr
expr
こんな感じに let と並べないとダメなんだって。
let x = 1
and y = 2
x + y
とすると、#light なしでこう書けるものは
let gg =
  let x = 2 in 
  let y = 3 in
  (let y = x and x = y + 2 in x * y) + y
#light ありだとこんな感じ?
#light

let gg = 
  let x = 2  
  let y = 3 
  (let y = x
   and x = y + 2 
   x * y) + y
同時束縛のときは”並べないとダメ!”とか決められると誰が書いてもこの書式になるわけで ソースを見るときは楽かもしれない! 他にも結構決められてるみたいだから、「書き方おかしいぜ」って言われたらマニュアル要チェックや  

Labels:

0 Comments:

Post a Comment

<< Home