Рубрика: Scala

  • Поиск. КМП-алгоритм

    Недавно на досуге решил написать алгоритм КМП  (Кнута — Морриса — Пратта) для Scala. Изначально, мне нужно было решить простенькую задачку – найти последовательность байт в потоке байтов. Сделал на Java. Потом, решил сделать тоже самое на Scala. Занятно, но в стандартной библиотеке коллекций Scala используется именно КМП поиск. Вот мой вариант.

  • Читерство в NetBeans. Ввод и использования мат. символов и букв греческого алфавита.

    Оригинальная идея взята из поста Gabriel’s software development blog. Статья довольно старая, опубликована еще в прошлом году . Если коротко: def √(x:Double)=Math.sqrt(x) def ∑(r:Range)(f:Int => Int)=r.foldLeft(0)(_+ f(_)) def ∏(r:Range)(f:Int => Int)=r.foldLeft(1)(_* f(_)) val s= ∑(1 to 100)(x=>√(x)) Это обычный Scala код! Выглядит он прикольным, потому что мы используем знакомые всем со школы/института символы. Но как […]

  • Магия унарных операторов в Scala (unary_)

    Многие знают, что в Scala возможна перегрузка операторов. К примеру, пусть у нас будет класс – двухмерная точка: class Point(val x: Double, val y: Double) { def -(p: Point) = new Point(x-p.x, y-p.y); def +(p: Point) = new Point(x+p.x, y+p.y); } Работать с ней приятно: val p1 = new Point(2,2); val p2 = new Point(1,1); […]

  • For в Scala

    Цикл for в Scala. for ( i < - 1 to 10) { println(i) } Что получится в итоге? Здесь все понятно. На консоль будут выведены числа от 1 до 10 включительно. Как это работает? Здесь немножко сложнее... Число 1 — это Int, будет неявно преобразован компилятором в тип RichInt. У RichInt есть метод to(end:Int), […]

  • Опять Scala

    Начал формировать небольшой справочник с примерами на Scala для собственного пользования. Импорт import java.util.{Date,Calendar} import java.util.logging._ Простой цикл for ( x < - 1 to 10) { println(x) } Получить класс classOf[String] // Например: LoggerFactory.getLogger(classOf[Foo]) Создать список val x = new scala.collection.mutable.ListBuffer[Int]; x+=1998 x+=2000 x+=2001 x(0)=1999 // изменить элемент Простой match val x = "admin"; […]

  • Учебное пособие по Scala. Вольный перевод.

    В связи с малым количеством (на момент публикации этого поста) полноценных учебных материалов по языку программирования Scala на русском языке , постарался сделать простой перевод краткого пособия. Оригинальная статья лежит здесь http://www.scala-lang.org/docu/files/ScalaTutorial.pdf Корректура текста будет осуществляться после публикации, по ходу получения отзывов, комментариев и повторной вычитки. Возможно, через некоторое время выложу PDF-версию. Scala Tutorial. Авторы: […]