LINUX.ORG.RU

Вышла Scala Final 2.6.0


0

0

В этой версии языка исправлено множество ошибок, а также введена поддержка ленивых значений (значений, вычисляющихся при первом обращении к ним), структурных типов и экзистенциальных типов.

Структурные типы позволяют использовать в коде Ruby-like конструкции:
def test(f: { def getName(): String }){
println(f.getName)
}

Здесь test принимает в качестве параметра любой объект, имеющий в составе метод getName, возвращающий String

>>> Подробности

anonymous

Проверено: anonymous_incognito ()
Ответ на: комментарий от Bioreactor

>А теперь конкретный пример. Типа шаблонов GoF. А то "все мыслью по древу"

Пожалуйста, без матерных слов и со ссылками :)

adarovsky ★★★★
()
Ответ на: комментарий от Bioreactor

GoF писала свои шаблоны для языка программирования, по ООП возможностям эквивалентным Java. Таких возможностей, как в Scala просто не было. Потому искать в этом списке какой будет шаблон - глупо. А если ещё и для любых примеров говорить, что они безосновательны вне зависимости от самих примеров...

achy
()
Ответ на: комментарий от achy

Еще раз спрашиваю:

1) где конкретный код для демонстрации явных преимуществ Скалы?

2) где истории успешного внедрения супер-пупер язычка "Скала"?

А все остальное пустословие.

ЗЫ. Клуб любителей всяких поделий организовали бы, дабы теоретикам не скучно было бы. Авось, какого-нибудь студиоуза в сою веру и обратили бы. :)

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

>??? Ну, вообще-то, это как-то общеизвеcтно. >http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D0%B...

Не подозревал, что довольно очевидные вещи можно назвать страшными словами :)

>Интересен обосновывающий пример. Предыдущий пример обосновал НИЧЕГО.

Предыдущим примером я показал dea, что в скале статическая проверка типов.

Для примеров зайди на вики scala-lang.org, в code examples. Там много интересного

adarovsky ★★★★
()
Ответ на: комментарий от adarovsky

Например, реализация свойств

package examples

object timeofday {

  class DateError extends Exception

  /**
   * Simulating properties in Scala
   * (example 4.2.1 in ScalaReference.pdf)
   */
  class TimeOfDayVar {
    private var h, m, s: Int = 0

    def hours = h

    /** A method 'ident_=' is a setter for 'ident'. 'code.ident = ...' will
     *  be translated to a call to 'ident_='
     */
    def hours_= (h: Int) =
      if (0 <= h && h < 24) this.h = h
      else throw new DateError()

    def minutes = m
    def minutes_= (m: Int) =
      if (0 <= m && m < 60) this.m = m
      else throw new DateError()

    def seconds = s
    def seconds_= (s: Int) =
      if (0 <= s && s < 60) this.s = s
      else throw new DateError()
  }
  
  def main(args: Array[String]) {
    val d = new TimeOfDayVar
    d.hours = 8; d.minutes = 30; d.seconds = 0
    d.hours = 25 // throws a DateError exception
  }

}

adarovsky ★★★★
()
Ответ на: комментарий от Bioreactor

>2) где истории успешного внедрения супер-пупер язычка "Скала"?

Ты бы ещё в 1994 году с языка Java/Oak успешные внедрения спрашивал. Сказано - язык новый, множество возможностей добавилось вообще в последней версии. Ошибки исправили в последней версии. Толковую литературу и учебники напишут к следующей...

>Клуб любителей всяких поделий организовали бы, дабы теоретикам не скучно было бы.

Ты, строго идентифицирующий себя как "практик", можешь заниматься привычными делами. Никто ж не заставляет? Чувствовать надо разницу между cutting & bleeding edge.

Другим людям может быть весьма интересно, какие идеи и реализации существуют сейчас, показывающие программирование будущего. И во многом благодаря им такое будущее и наступает быстрее. Теории становятся практиками. Всё, что ты сейчас считаешь практикой, тоже когда-то было теорией.

So, what's yo trouble, man?..

>1) где конкретный код для демонстрации явных преимуществ Скалы?

Будет. Нам торопиться некуда... :) Вообще отличий Scala от Java побольше, чем то одно, которое мы выбрали для обсуждения. Посмотри реализацию quick sort на Scala. И реализуй свою (не библиотечную) версию на Java. Вопрос в сравнении количества кода.

achy
()
Ответ на: комментарий от adarovsky

ленивые и многопоточные вычисления: http://scala.sygneca.com/code/futures

вариант, как можно проще работать с ODBC: http://scala.sygneca.com/code/simplifying-jdbc

Ещё свойства: геттеры/сеттеры автоматом превращаются в свойства, которые можно использовать в выражениях http://scala.sygneca.com/code/defining-bean-properties

adarovsky ★★★★
()
Ответ на: комментарий от achy

> So, what's yo trouble, man?..

Он жавабыдлокодер. :(

sv75 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.