Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (13)

Лучшие ответы пользователя

Все ответы (8)
  • Примеры идеального кода?

    @zahardzhan
    Почитай книгу "Идеальный код" [Beautiful Code, O'Reilly, 2009]. Хорошая вещь, профессионалы рекомендуют. Разбор образцовых примеров кода всех возможных стилей и направлений.
    Ответ написан
  • Функция в математике?

    @zahardzhan
    Если смотреть на вещи проще, то функция в программировании - это правила, по которым из чего-то одного получается что-то другое (причем это что-то другое всегда одинаковое для одного и того же).

    Например, правила по которым из одних правил получаются другие правила - это и есть пример функции в программировании в общем виде.
    Ответ написан
  • Что такое список в функциональных языках программирования?

    @zahardzhan
    В чисто функциональных языках программирования функция это одновременно и программа и данные, поэтому список это просто функция которая содержит в себе множество других функций, которые являются элементами списка, в упорядоченном виде. Соответственно извлечь функцию-элемент списка из функции-списка можно с помощью применения функции извлечения функции-элемента списка из функции-списка. В памяти такая конструкция хранится в виде дерева.

    Например, функция-список λfx.fu(fv(fwx)) содержит в себе функции-элементы u, v, w

    λfx.fu(fv(fwx))
    
            f
            x
           . .
          f u .
             . .
            f v .
               . .
              f w .
                   x


    Функция λl.l(λab.a) извлекает первую функцию-элемент из функции-списка

    λl.l(λab.a)
    
             l
            l a
              b
              a


    Извлечение функции-элемента u из функции-списка (λl.l(λab.a))(λfx.fu(fv(fwx)))

    (λl.l(λab.a))(λfx.fu(fv(fwx)))x = u
    
                                                                             .
          .                  .            x             x            x      x x    u
         . .                . .          . .           . .           u      u
        l   .              f   a        a u .         b   .
       l a   .             x   b        b  . .        u  . .
         b   f            . .  a        a a v .         b   .
         a   x           f u .            b  . .        v  . .
            . .             . .           a a w .         b   x
           f u .           f v .            b    x        w
              . .             . .           a
             f v .           f w .
                . .               x
               f w .
                    x
    Ответ написан
  • На каких задачах отработать ООП, паттерны практически?

    @zahardzhan
    hokudJolsbsy,

    На каком проекте/задаче вы реально освоили, отработали такую-то технологию/фреймворк/патетрн/инструмент


    Для того чтобы понять какой-либо паттерн, подойдет любой достаточно убогий в выразительных средствах язык программирования, который не поддерживает соответствующую семантику встроенными в язык средствами. Лучше всего взять ассемблер. Ассемблер не поддерживает никакие высокоуровневые семантики, поэтому это самый лучший язык для изучения паттернов. В нем вам придется реализовать паттерн Подпрограмма, паттерн Цикл, паттерн Сложение Больших Чисел, паттерн Массив, и много-много других паттернов.

    Сама задача "изучение паттернов" это в некотором смысле извращение. Это равносильно тому, что вы сперва отпиливаете себе ногу, а потом изучаете набор костылей, которые позволят вам нормально передвигаться, компенсируя свою неполноценность.

    Если есть задача изучить паттерн - берете язык в котором семантика этого паттерна реализована без паттернов, т.е. языковыми средствами, изучаете реализацию этой семантики, затем возвращаетесь в свой более убогий язык, и пытаетесь придумать реализацию этой семантики в виде костыля (паттерна) - таков естественный путь изучения паттернов.

    Design Patterns in Dynamic Languages
    Ответ написан