четверг, 18 февраля 2010 г.

Примеры гибкости синтаксиса Scala из описания Goat Rodeo

Недавно Дэвид Поллак (главный разработчик Web-фреймворка Lift для Scala) разродился пространным описанием своего нового детища Goat Rodeo. Что это за зверь, зачем он нужен и с чем его едят я после беглого просмотра статьи не понял (таки слишкам многа букв). Но некоторые примеры кода зацепили. Вот (специально не обрезал длинные строки из оригинальных примеров):

on myWorker complete {resp: Box[QLong] => resp.foreach(q => println("The balance is "+q))} ask GetBalance()

и вот:

for {
      t <- msg.xacts
      fromWorker <- WorkerMgr.find(t.from)
    } transaction avec fromWorker send SetupTransfer(t)

Данный синтаксис, насколько я помню, обычное дело для Scala – там можно определять собственные операторы с любыми именами. Поэтому, полагаю, имена avec и send во втором примере – это имена таких операторов.

Вот смотрю я на запись ‘transaction avec fromWorker send SetupTransfer’ и не могу понять – нравится мне или нет. Вроде и лаконично, и симпатично. Но как то сильно COBOL-ом попахивает.

Комментариев нет: