a new programming style
    case "vulcan" :: "status" :: Nil Post _ => {
      for (
        success <- S.param("success");
        listener <- whoCare)
        listener("", true)
      
      for (
        list <- S.param("failList");
        val ignoreme = VulcanLog.error ("The following engine(s) reported start failures: %s", list);
        listener <- whoCare
      ) listener(list, false)
      thank you 
    }
Вот так вот я теперь пишу - и это типа только начало, потому что сейчас ещё чуток поднапрягусь, усвою силу монады и апликативность, и перейду к апликативному стилю. Заодно большой пост напишу на эту тему. А то что на верху - вчерашний день немножко. В sbt уже проехали этот кондовый do-style.
Что здесь происходит.
К нам приходит http://.../vulcan/status?success=true или ... /vulcan/status?failedList=ivanov,petrov,sidorov
Первый цикл - на первый случай, а второй - на второй.
Во втором случае мы берём список неудачников и посылаем всем слушателям из множества whoCare
Конечно, немножко тяп ляп, но важен стиль, а?
Спасибо Джошу Суерецу, Грегори Мередицу и Тони Моррису за то, что глаза открывают на прекрасный новый мир.


![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)