juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2012-05-02 02:34 pm
Entry tags:

yet another scala kitten

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def retrieveProps(c: Container, file: String) {
  val prop = new {
    def apply(key: String) = c.getPropertyOrFail(key,
      throw new IllegalArgumentException(
         "missing " + key + " in " + file)).getValue
  }

  val name = prop("username")
  val pass = prop("password")
  val db   = prop("database")
}

[identity profile] mikkim08.livejournal.com 2012-05-03 05:00 am (UTC)(link)
А почему prop не функция ? Типа, def prop(key: String) = {...}

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 05:15 am (UTC)(link)
Да можно, можно - но идейка в том, что можно и богатый внутренний мир устроить за нефиг делать.

Или эквивалентно?

[identity profile] lomeo.livejournal.com 2012-05-03 05:51 am (UTC)(link)
Здесь у prop только один метод, так что лучше бы, чтобы сам prop им и был. Тогда, кстати, отличий от java особо не будет ;-)

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 06:03 am (UTC)(link)
Такое ощущение, что из скалы вполне можно сбацать типизированный джаваскрипт.

[identity profile] lomeo.livejournal.com 2012-05-03 07:06 am (UTC)(link)
Честно говоря, не вижу как прототипы типизировать. С остальным понятно.

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 04:43 pm (UTC)(link)
А! Прототипы! Я их не использую никогда, так что у меня несколько кособокий взгляд.

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 06:09 am (UTC)(link)
Нет, ну в тексте, откуда это приползло, у меня просто функция.

[identity profile] ionial.livejournal.com 2012-05-03 04:33 pm (UTC)(link)
А вот скажите, иван джавахарлавович, код на скале получается сильно короче, чем на джаве?
Не в отдельном примере, а в целом проекте?

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 04:42 pm (UTC)(link)
Короче и разборчивей. Мусора намного меньше.

[identity profile] ionial.livejournal.com 2012-05-03 04:45 pm (UTC)(link)
Буду писать домашний проект.
а вы теперь переименуетесь в скалахарлавовича?

[identity profile] ivan-gandhi.livejournal.com 2012-05-03 05:50 pm (UTC)(link)
У меня licence plate SCALAR, с 2008-го года.

Кстати, для дрессировки projecteuler очень даже годится; мне зверски помогло освоить "идиоматический стиль".
Edited 2012-05-03 17:51 (UTC)

[identity profile] ionial.livejournal.com 2012-05-03 06:49 pm (UTC)(link)
не идет у меня эйлер - нет достаточно мотивации решать отвлеченные задачи.
А вот написать что-то душе полезное - есть.