Jul. 30th, 2015

netch80: (bird)

Сегодня мы представляем яркого представителя NoSQL мира, kdb+ - "time series database" системы "колоночник", популярную в кругах алгоритмического трейдинга и околобиржевого процессинга. Имеет встроенные языки, называемые q (более человеческий, по публичному утверждению авторов) и k (сами догадаетесь). 32-битная версия бесплатна. 64-битная версия продаётся, по слухам, за 50000$ за рабочее место. (Я ничего такого не слышал и не знаю, где эти слухи ходят! Все имена и цифры выдуманы.) Посмотрим, какой фантастический функционал предлагают за эти, не боюсь откровенного слова, смешные деньги.

Пример кода на q:

ld:{if[not type key L::`$(-10_string L),string x;.[L;();:;()]];i::j::
  -11!(-2;L);if[0<type i;-2 (string L),
  " is a corrupt log. Truncate to length ",(string last i)," and restart";exit 1];
  hopen L};

Эта система - для настоящих профессионалов, которые ценят свои вложенные усилия и хотят получить достойную оплату своего труда. Хотя кое-что не соблюдено: по ней печатают книги. Боюсь, зря: надо было ограничиться курсами.

Начнём с простого. Чему равно 3+4*5? Калькулятор Microsoft Windows в чайниковском режиме скажет 35, в инженерном - 23. Проверяем:

q)3+4*5
23

Кажется, что всё как обычно? Переместим умножение.

q)3*4+5
27

Вы ожидали 17 в любом случае? Вы ничего не понимаете. Надо думать как "ненаучный" режим, но считать справа налево, а не слева направо. Привыкайте к миру высоких биржевых технологий, где ask это продажа, а bid это покупка. Скобки - ваш друг:

q)(3*4)+5
17

Кстати, тут круглые скобки. Но не обольщайтесь! В отличие от ламерских языков навроде Python и Javascript, для вызова функции нужны [квадратные; скобки], а для записи списка (круглые;скобки); аргументы, естественно, разделяются не запятой, а точкой с запятой:

q)a:{x+y}
q)a[3;4]
7
q)last `a`b`c
`c
страньше и чудесатее )

Надеемся, что наше короткое введение, особенно ценное для пользователей таких хило-студенческих и бесперспективных языков, как C++ и Java, поможет вам войти в мир настоящих профессионалов программирования. Не надо бегать за курсами на Forex, ваш удел - непосредственно создавать колебания курсов!

Profile

netch80: (Default)
netch80

August 2017

S M T W T F S
  12345
67 89101112
13141516171819
2021222324 2526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 22nd, 2017 08:05 am
Powered by Dreamwidth Studios