?

Log in

Чтобы не было соблазна куда-то это развивать — «Hello, world!» на… - Оживший юзерпик

Dec. 26th, 2012

09:27 am

Previous Entry Share Next Entry

Чтобы не было соблазна куда-то это развивать — «Hello, world!» на Clojure дорос до 1000 строчек, за что и будет убит закончен.

IRC bot, зовут clojuress. Умеет мало чего, синхронный и однопоточный.

Current Mood: determined

Comments:

[User Picture]
From:rmrfchik
Date:December 26th, 2012 05:43 am (UTC)
(Link)
my eyes...
(Reply) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 05:44 am (UTC)
(Link)
Ho-ho-ho!
(Reply) (Parent) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 05:44 am (UTC)
(Link)
(участливо) а что с глазками — болеешь? :-)
(Reply) (Parent) (Thread)
[User Picture]
From:rmrfchik
Date:December 26th, 2012 12:00 pm (UTC)
(Link)
кровь!!! кровь идёт из глаз!!!
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:ico
Date:December 26th, 2012 06:12 am (UTC)
(Link)
хихи :)
(Reply) (Parent) (Thread)
[User Picture]
From:ico
Date:December 26th, 2012 06:13 am (UTC)
(Link)
А лет через 10 глядишь, напишешь первый вирус с дорвеем, который слушает команды на irc-канале! :)
(Reply) (Thread)
[User Picture]
From:raydac
Date:December 26th, 2012 06:23 am (UTC)
(Link)
всеж не нравится мне когда навалом скобок :( нет что бы forth развивать, все что то в лиспоподобное ломанули
(Reply) (Thread)
[User Picture]
From:sigurna
Date:December 26th, 2012 07:08 am (UTC)
(Link)
ты велик. в смысле велИк.
но чОрт возьми, Холмс. Зачем?!
(Reply) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 07:20 am (UTC)
(Link)
Чтобы остатки мозга не плесневели?
(Reply) (Parent) (Thread)
[User Picture]
From:cdplayer
Date:December 26th, 2012 09:07 am (UTC)
(Link)
О, если мозги плесневеют, мож моей жене плагинчик папишешь для магенты? На пхп, правда. :) Я техзадание напишу, с вирефреймамми, всё чин по чину! :)
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:sfy_y
Date:December 26th, 2012 10:22 am (UTC)
(Link)
Не, ну ты даёшь. Ещё одну ЛЕГЕНДУ породил. :)
(Reply) (Thread)
[User Picture]
From:alexott
Date:December 26th, 2012 10:36 am (UTC)
(Link)
а чего не на гитхабе? :-)
(Reply) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 10:50 am (UTC)
(Link)
Не умею git :)
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:December 26th, 2012 12:31 pm (UTC)
(Link)
http://learn.github.com/p/intro.html ?
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:alexott
Date:December 26th, 2012 10:44 am (UTC)
(Link)
немного замечаний :-)
- а зачем dynamic для мутабельных данных? может лучше atom? dynamic насколько я помню создает лишний контекст для каждого треда. и для присвоения dynamic надо использовать set!
- def, в отличии от схемы - всегда создает
- посмотри на https://github.com/clojure/core.cache - там есть разные кеши, с expire, etc.
(Reply) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 10:52 am (UTC)
(Link)
О, спасибо!
- понял
- понял
- понял, но мне самому интересно было, благо кэш обошёлся в 10 строчек кода. Люблю выразительность :)
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:December 26th, 2012 11:47 am (UTC)
(Link)
да, кстати - я заметил у тебя pattern вида (assoc map key1 (assoc entry key2 value)) - это можно заменить на (update-in map [key1 key2] value), и есть соответствующая операция для получения значений - get-in
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:tobotras
Date:December 26th, 2012 10:54 am (UTC)
(Link)
Не, не понял. Зачем atom в однопоточной синхронной софтине?
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:December 26th, 2012 11:46 am (UTC)
(Link)
насколько я помню, присвоение dynamic var ведет к большему оверхеду в run-time, но в принципе да, это не актуально...
(Reply) (Parent) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 11:00 am (UTC)
(Link)
Не, вообще ничего не понял :)

def создаёт. Как это мне помогает? Не объявлять в начале (def something-global {})? А потом везде по коду, вместо этого, проверять, существует ли оно?..
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:December 26th, 2012 11:33 am (UTC)
(Link)
не дописал комментарий там :-)
def всегда создает top-level переменную, независимо от того, где оно воткнуто. Если ты хочешь изменить значение, то надо воспользоваться set!
(Reply) (Parent) (Thread) (Expand)
[User Picture]
From:duke_igthorn
Date:December 26th, 2012 01:32 pm (UTC)
(Link)
до тех пор, пока он не научится приносить тапочки - рано говорить о завершении проекта!
(Reply) (Thread)
[User Picture]
From:lispnik
Date:December 26th, 2012 02:56 pm (UTC)
(Link)
А я тут пишу веб-чат на питоньем Twisted (AJAX, long-polling, все дела). С прицелом на то, чтобы можно было сидеть на выбор и через браузер, и через джаббер, кому как удобнее.
(Reply) (Thread)
[User Picture]
From:tobotras
Date:December 26th, 2012 07:22 pm (UTC)
(Link)
Пойду почитаю, что такое long-polling :)
(Reply) (Parent) (Thread)
[User Picture]
From:votez
Date:December 27th, 2012 12:49 pm (UTC)
(Link)
ты смотри как проклятый лисп мутировал-то...
(Reply) (Thread)