Ok, imam mallih problema u konceptualnom razumevanju white-space delimited scopes (samo najgori sado-mazohista moze da osmisli jezik u kome se scope definise space-om

)
primer male rekurzivne matching fukcije preko lambda match:
Code:
let rec fib =
function 1 -> 1
| 2 -> 1
| x -> fib (x - 1) + fib (x - 2)
Nije mi bas najjasnije sta je ovde sa cim u scope-u. Npr, ako 2, ili x patern pomeriteu levo kompajler ce vrisnuti cak iako ima dodatnih spaceova (samim tim je takodje u novom scope-u kao i pre):
Code:
let rec fib =
function 1 -> 1
| 2 -> 1
| x -> fib (x - 1) + fib (x - 2)
error FS0010: Unexpected symbol '|' in binding. Expected incomplete structured construct at or before this point or other token.
Sa druge strane ako dodam variajbilni broj space-ova pred patern, to prolazi lagano iako bi trebalo da vristi zbog novih scope-ova:
Code:
let rec fib =
function 1 -> 1
| 2 -> 1
| x -> fib (x - 1) + fib (x - 2)
slicna prica se pojavljuje i u "match x with" formi, generalno uvek pravi problem ako je token ispred prvog tokena bez obzira gde se on nalazi, sto je onda u suprotnosti sa generalnom pricom o scopes u F# osim ako je sama patern match lista scope za sebe za koji ne vaze opsta pravila.
Da mi je samo znati sta je toliko problematicno sa je*enim viticastim zagradama za definisanje scope-a.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić