← All posts tagged программирование

Shchvova
программирование Общим, есть задачка: упорядочить числа от 1 до 17 (включительно) что бы в этой цепочке сумма каждой пары соседей была целым квадратом.
(оригинал — Arrange the numbers 1 through 17 (inclusive) in a sequence so that the sum of each pair of consecutive numbers is a perfect square)
Пример куска цепочки-результата 10, 6, 3, 1 — 10+6=4^2, 6+3=3^2, 3+1=2^2;
Я решил на питоне, но хотелось бы посмотреть может кто покажет более красивые решение на своем любимом языке, ну или улучшит мое (в комменте)
Shchvova
дыбр программирование решил вот прочитать книжку по эрлангу. Пока в консольке примеры — все ок. А дальше прямо жестяк. Что, реально для эрланга нету поддержки в Саблайме/Атоме? Да и вообще, гугление чего-то по эрлангу мучительно и обычно ничего не всплывает. Как вообще эрлангисты живут без текстовых редакторов?
Shchvova
работа дыбр программирование Жуйче, помоги. Общим, я пишу поддержку джойстиков как hid устройств; проблема — они возвращают минимум и максимум для осей. Например микрософтовские геймпады для 360 говорят что они от -32к до + 32к. Все клево и понятно. А вот сони и другие (типа логитек) говорят что они от 0 до 255. Проблема — не понятно где нейтральное положение. Типа если не трогать thumbsticks, оно типа фигачит 0.5, а не 0. Есть опыт как получить нейтральное значение? Или вообще, какой-то связанный опыт с работой с hid устройствами?
Shchvova
clang GCC ? программирование Unix Ребята, а может кто-то умный объяснить зачем нужна эта строчка `-pagezero_size 10000 -image_base 100000000` что бы построить luajit для мака? luajit.org Может кто-то простым и доходчивым языком пояснить что оно делает и зачем нужно?
Shchvova
мысли программирование вообще всегда хотелось что бы не было ссаных простых типов... Ну, для примера, возьмем lua c api. Там есть куча функций, которые оперируют с порядком на стеке. При чем номер на стеке — int. Так же как и значения некоторых параметров, которые не номер на стеке. Например — lua_pop, которая получает количество элементов которые нужно со стека убрать. Общим, это ведь разные сущности — там номер, там — количество. При чем номер может быть "специальным" часто. Нужно больше типов!
Shchvova
? программирование а как в других языках делают то что в си-лайк делают директивами компилятора? Я о #ifdef CHEAT_BUIL …. хрень которая и близко не должна быть в продакшоне ваще никак #endif
Shchvova
? программирование а вы вот какой апргрейд языков предпочитаете? Например разница между С++ 11 и 98 очень большая, но они обратно совместимы практически полностью; это тянет за собой груз всего стремного синтаксиса и новый синтаксис стремноват от обратной совместимсоти. Или, другой пример — питон 2 и 3, где буквально хелло ворд поменялся, и новая версия не тянет за собой обратную совместимостью.
Shchvova
? программирование важно Общим, вопрос — нужно на Objective C написать маппинг межу си строками и NSString. Т.е. дан на бумажке список пар строк, типа
"thing" <==> @"com.apple.thing"
"other" <==> @"com.adobe.other.thing"
"value" <==> @"other value"
….
Надо написать две функции
const char * -> NSString
NSString -> const char []
Которые будут возвращать другую сторону стрелочки. Что хочется а) что бы было элегантно б) маппинг можно хардкодить в) что бы маппинг можно было задать только раз и шарить его между функциями
Shchvova
code Python ? программирование
не часто задаю вопросы по питону, но даже не знаю как нагуглить. Вот есть список. Я его последовательно фигачу фильтрами, мапами. Общим, вот кот специально для пимера:
#!/usr/bin/env python
import sys

if __name__ == '__main__':
    with open(sys.argv[1]) as f:
        lines = f.readlines()
        lines = map(str.strip, lines) #stripping endlines
        lines = filter(bool, lines) #stripping empty lines
        lines = filter(lambda l: ':' in l, lines) #filter out strings withot :
        lines = map(lambda l: l.split(':', 1), lines)
        lines = map(lambda l: "=".join(l), lines)
        print "\n".join(lines)

Можно легко заметить паттерн. Общим, а я хочу зафигачить (монаду?) что бы можно было все как-то чейнить? Я наваял что-то типа этого, но выглядит ужасно. Есть ли методы получше?

#!/usr/bin/env python
import sys

class Monadinize():
    def __init__(self, l):
        self.l = l

    def map(self, f, *args):
        self.l = map(f, self.l, *args)
        return self

    def filter(self, f):
        self.l = filter(f, self.l)
        return self

    def done(self):
        return self.l

if __name__ == '__main__':
    with open(sys.argv[1]) as f:
        out = Monadinize(f.readlines()) \
                    .map(str.strip) \
                    .filter(bool) \
                    .filter(lambda l: ':' in l) \
                    .map(lambda l: l.split(':', 1)) \
                    .map(lambda l: "=".join(l)) \
                    .done()
        print "\n".join(out)

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