zmila: (3kub)
у нас у ЭПАМе на палічцы "бяры за так" ляжыць 900-старонкавая кніжка "introduction to scala" •
наф сэд
zmila: (lunlumulo)
кажуць, Java8 выйдзе летам 2013, а там ужо будуць
  • lambdas, filter-map-reduce над калекцыямі,
  • StringJoiner and String.join(...) are long, long overdue. They are so long overdue that the vast majority of Java developers likely have already written or have found utilities for joining strings
  • Objects.isNull(Object)
  • The new date/time API in Java 8 is contained in the java.time package
zmila: (bicikla neĝero)
напісякаў 4е заданьне, паслаў, а мне адказваюць:
Our automated style checker tool found issues in your code with respect to coding style: 
it computed a style score of 1.98 out of 2.00 for your submission. See below for detailed feedback.
...
1. warning at line 163 character 6:     
   Cyclomatic complexity exceeds 10
гэтыя гады падлічваюць складанасьць функцыі разам з усімі яе лякальнымі пад-функцыямі •
def foo  ... = {
   def foo0 = ...
   def foo1 = ... 
   ...
}
я вынес гэтыя дапаможныя функцыі на ўзровень вышэй, і цяпер усё чыста - 10 з 10 балаў •
def foo0 = ...
def foo1 = ... 
def foo  ... = {
   ...
}
але гэта мне не падабаецца - забруджваньне прасторы •
zmila: (Default)
распачаўся курс "Functional Programming Principles in Scala" •
забацаў заданьне зь першай лекцыі, хоць відэа з самой лекцыі пакуль яшчэ не праглядзеў •
засылаў вынікі тры разы: першы раз ругнулася, што я ўжываю return - bad style, другі раз на null •
нарэшце ўсё добра: 10 з 10 •

(праглядзеў, сапраўды першыя відэа ня шмат даюць новага)

poliglot

Feb. 27th, 2012 02:16 pm
zmila: (bicikla neĝero)
GoSu, Xtend, Kotlin, Julia

што заўгодна людзі прыдумаюць,
абы толькі не працаваць (Java),
не вучыць матчасьць (Scala),
або дужа баяцца дужак (Clojure) •
zmila: (Default)
усё яшчэ ў адпачынку, адпачываю ад хваробы - усё яшчэ не зразумеў, ці выздаравеў, ці ўсё яшчэ хворы

схадзіў на сустрэчу скалістаў, пасьля думаў, ці будзе калісьці распрацаванае нешта, што б дало доступ да ўнутранага API чалавека, каб можна было атрымаць "рут", і праз якісь hEmacs на hlisp падпраграмаваць сябе, пафіксаць некаторыя багі (хваробу, лень, ...)

дарабілі рамонт у кухні, учора быў апошні акорд: купілі на жданах падстольле (а сталешніца засталася ад убудаванай сьценкі), і табурэткі
ўзьнікла пытаньнё, як бы мы гэта зрабілі без аўто: прывезьці купу жэлезак, пару кіло вантробаў для сабакаў, хурму, мандарынкі і іншыя вітамінкі для людзёў ;)

за гэты няпоўны месяц (пачынаючы з 18га) мы змаглі патраціць 5000МБ інэт-трафіка, што дае лайфаўскі ЗТЭ, юцюб нам у помач :)
zmila: (bicikla neĝero)
не (да канца) праглядзеў прэзэнтацыю Clojure: Towards The Essence Of Programming але прачытаў адну з рэакцыяў на яе з боку Скалы
згодны з аўтарам: скала амаль таксама як і клажура дазваляе пісаць больш сэнса, і меней займацца цэрэмоніямі - у параўнаньні з жавай •
былі некалькі думкаў пра дастаткі і недастоінствы абедзьвюх моваў - але толькі занатую прыгожую параўнаньню: скала гэта меч, універсальная зброя, ею можна і калоць і рубіць і рэзаць; клажура жэ - гэта як шпага, карыстальнік вымушанны быць больш вопытным і вытанчаным •
ну і скальная магчымасьць ужываць і мутабельныя і немутабельныя тыпы - гэта як закон аб дзьвюхмоўі ў РБ - калі можна і тое і гэтае, тады маем тое што маем ... 

але
вось зараз зноў мяне пераймае жаваўская немагчымасьць лёгка перерабіць функцыю (нават ланцуг функцый: ui - bean - dao), якая чытае з БД нейкі параметр у функцыю, якая вяртае два параметры •
даводзіцца або вяртаць масіў (і гудбай статычная праверка тыпаў) або ствараць новы клас - dto •
zmila: (lunlumulo)
Google AI winner uses lisp - пішуць у клажурным сьпісе рассылкі •
далей даюць спасылку на поц пераможцы пра гэта Planet Wars Post-Mortem і камент:
The exciting thing is that a) the winning program was Lisp, b) it won by a lot, and c) 99 out of the top 100 were not Lisp. Now, this could just mean that Gabor was unusually obsessed with the contest, and the language just "got out of his way". Personally, I'm ok with that.
(уражвае, што праграма-пераможца напісаная на лісьпе, што перамагла на шмат, што астатнія 99 з сотні пісалі не на лісьпе • усё гэта можа азначаць, што Габар быў незвычайна апантаны гэтым конкурсам, і што мова была "інглішь сакс" • асабіста мне гэта спадаба)


ну і штоп два разы не пісаць •
раней тамсама ўжо было: Being "not Lisp" is a feature?
I don't want to start any language wars, but this is funny: (не хачу разьвязваць аніякіх моўных войнаў, але гэта прышпільна:)
http://gosu-lang.org/comparison.shtml

на старонцы "Параўнаньне" сайта пра мову Gosu - табэлька з рознымі крытэрамі і як усякія жавовыя мовы выконваюць гэтыя крытэры (зразумела, што ўсе-ўсе крытэры выконвае толькі згаданая Gosu, дэсу-дэсу!) • а адзін з крытэраў: "гэта ня лісп!" выконваюць усе, акрамя Клажуры •

"I love the part where it claims Scala has "solid IDE tooling". Ever since 2.8.0 comes out the Eclipse plugin auto-completion is broken." - мяне таксама дратуе, што Скала ўсё яшчэ ня мае вартага рэдактара • на ейны экліпсавы плагін я пляваўся-пляваўся і перайшоў да Клажуры, дзе ўжо даволі добры плагін, а галоўнае часта выходзяць апдэйты, і аўтары зважаюць на паведамленьні аб памылках і аператыўна выпраўляюць • а нядаўна зьявілася новая версія, дзе рэпл не ўбудаваны, а выдзелены

але вось у Госу - сапраўды годны плагін да экліпса (праўда толькі да 3.5, Galileo (кажуць, што магчыма падкласьці плагін з 3.5 у 3.6)) •
і сама мова - файны кампраміс: дадалі шмат таго, што хацелася б мець у жавы (пэўнае вывядзеньне тыпаў, замыканьні, прасунутыя калекцыі з агромным наборам функцыянальных метадаў (усякія map, fold, where)) - багацейшы за тое, што ё ў Скала • але пры гэтым яна прасьцейшая за Скалу, як пішуць "Easy transition from Java" • мае ўнікальныя разынкі, гэта больш талерантнае абыходжаньне з null-ам (obj.Property1.Property2.Property3 - не шпурляе NPE як усякая нармальная жава, а вяртае null калі нейкі з аб'ектаў у ланцужку роўны null; нейкі list and array expansion, літэралы для масіваў, аб'ектаў і хэшаў і розныя ішныя •
адна бяда ў Госу - гэта не цалкам кампіляваная мова, праграма выдаецца як набор зыходнікаў, якія кампілююцца ў ЖВМ падчас выкананьня •
але запусьціць, хуценька напісаць невялічкую праграмульку (кшталту рашыць задачку Эйлера) - сама то •

пра назву - аўтары напісалі, што
It was a random name, chosen by the dev lead, Scott McKinney. The language was originally called GScript, but we wanted something less likely to be confused as a google technology, and less likely to be interpreted as a scripting only language. All our source files still had .gs* extensions, and we didn't want to rename them all, so we needed something with a 'G' and an 's' in it.
а вікіпедзія пакуль што ня ведае, што ё такая мова праграмаваньня (соры, у лістападзе ўжо даведалася, я правяраў раней) •

cytaten

Dec. 16th, 2009 04:00 pm
zmila: (lunlumulo)
One the more general topic of "is Scala too complicated for mainstream developers?"...
Most developers, mainstream or otherwise, are maintaining or extending existing systems. This means that most of what they use is dictated by decisions made long ago. There are still plenty of people writing COBOL.
Tomorrow's mainstream developer will work maintaining and extending the applications that are being built today. Many of these applications are not being built by mainstream developers. Tomorrow's mainstream developers will use the language that is being used by today's most successful developers of new applications.
@ Erik Engbrecht
zmila: (Default)
туды
  val arr = Array(21, 3, -144);

  // no params - as property
  println( arr.toString );      // Array(21, 3, -144)

  // one param - infix operator
  println( arr mkString " " );  // 21 3 -144

  // more-than-one param - as function call
  println( arr.deepMkString("{{", " • ", "}}") );  // {{21 • 3 • -144}}
і назад
  var ls = List.fromString("Test")   // List(T,e,s,t)
  var ws = List.fromString("This is a test", ' ') // List(This,is,a,test)
  var ss = This is a test".split("\\s").toString  // Array(This,is,a,test)


і `cytaten` ня ў тэму

Closures are not the same as anonymous functions (lambdas). I agree it’s a nicer term, and I prefer to use it too, because it sounds more erudite, but I think it’s important to pick words according to what they actually mean, rather than what we’d like them to mean.
Also, “antecede” is not an antonym of “precede”, it’s a synonym.
zmila: (Default)
class Date(y: Int, m: Int, d: Int) {
   def year = y
   def month = m
   def day = d

  override def equals(that: Any): Boolean =
    that.isInstanceOf[Date] && 
    {
       val o = that.asInstanceOf[Date]
       o.day == day && o.month == month && o.year == year
    }
}

Profile

zmila: (Default)
zmi la

December 2016

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2017 06:22 am
Powered by Dreamwidth Studios