Как стать автором
Обновить
99
0
Рысцов Денис @shai_xylyd

Пользователь

Отправить сообщение

Вычисление выражений на Nemerle и Mono.

Время на прочтение2 мин
Количество просмотров1.5K
За weekend на хабре появились три статьи по разбору математических выражений: Компилятор выражений, Парсер математических выражений и Вычисление значения выражения и один комментарий, в котором код на прологе по краткости и выразительности рвет примеры в этих статьях.

Ниже я покажу, как использовать стандартные средства платформы и языка для достижения того же результата, а именно вычислению выражений.

Читать дальше →

Разработка снизу-вверх и базы данных.

Время на прочтение5 мин
Количество просмотров3.9K
    Пол Грэм в своих эссе часто касается темы разработки снизу-вверх. Этот метод упоминается у него, когда он пишет о разработке програмного обеспечения, о способе ведения бизнеса, о преимуществах open source и блогах. Ниже я опишу почему при этой модели разработки взаимодействие с базой данных встает поперек глотки, и предложу решение уместное в некоторых случаях.

читать далее...

Непопулярные аспекты тестирования

Время на прочтение5 мин
Количество просмотров2.6K

Непопулярные аспекты тестирования


     Каждый разработчик знает, что писать тесты это правильно, часть разработчиков знает это на своем опыте, другая из книг тех программистов, которые знают это на личном опыте и умеют продавать свои книги. Писать книги я не умею, да и опыта мало, но поделиться некоторыми аспектами использования unit тестов я могу. Ниже, я постараюсь поменьше упоминать прописные истины, но побольше оригинальных мыслей. Все размышления не привязаны к какому либо языку или фреймворку, поэтому эта статья может быть полезна широкой аудитории разработчиков.

Я соглашаюсь с тем, что данная статья распространяется на условиях CC-NC-BY

Оптимизация хвостовой рекурсии в .NET и Nemerle

Время на прочтение14 мин
Количество просмотров6.6K
Недавно chiaroscuro написал провокационную статью с жёлтым заголовком «Почему циклы должны умереть». Её обсуждение заняло около 180 комментариев, но сама статья ушла в минус и не попала на главную, не смотря на то, что она содержала здравую мысль об использовании рекурсии вместо циклов.

В этой статье я дополню его пост и приведу примеры реализации на одном из лучших языков под .NET — Nemerle, а так же сделаю холиварное заявление о преимуществе .NET перед Java.

Я соглашаюсь с тем, что данная статья распространяется на условиях CC-NC-BY

Болезнь, Nemerle

Время на прочтение3 мин
Количество просмотров8.8K
imageNemerle — язык под .NET, который поддерживает три парадигмы программирования: та, которую большинство программистов считает за ООП парадигму, функциональную парадигму (алгебраические типы данных, pattern-matching) и метапрограммирование (АОП, квазицитирование, расширение синтаксиса самого nemerle через макросы a-la lisp ). Все это положено на рельсы строгой статической типизации и приправлено мощной системой вывода типов.

Читать далее...

Как определить натуральные числа

Время на прочтение1 мин
Количество просмотров1.1K
CREATE TABLE Nothing ( God XML );

— ноль
SELECT count(*) AS X FROM
    Nothing;

— один
SELECT count(*) AS X FROM
    (SELECT count(*) AS X FROM Nothing) X;

— два
SELECT count(*) AS X FROM
    (SELECT count(*) AS X FROM Nothing
     UNION
     SELECT count(*) AS X FROM (SELECT count(*) AS X FROM Nothing) X) X;

— и так далее ...

Введение в mobile xotcl

Время на прочтение6 мин
Количество просмотров817
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}


package require XOTcl ; namespace import -force xotcl::*

#   За последние два дня на хабре появилась пара статей про программирование КПК на C# и C++. Это побудило меня написать цикл статей про тоже самое, а заодно познакомить читателей хабра, да и себя самого с такими технологиями, о которых мало кто слышал, но которые почти не имеют аналогов. Итак, резултатом статей будет программа для КПК, которая помогает что-либо учить. Работать она будет по методике карточек: одна сторона слово неизвестное, другая его значение. По дороге куда-либо просматриваем карточки, если слово неизвестное уже стало известно, то переходим к следующей карточке, иначе смотрим его значение и пытаемся запомнить.

#   Язык, на которым будет написано приложение, — TCL. Этот великолепный язык, возможно, не имеет аналогов. Благодаря его примитивному синтаксису, идея метапрограммирования и DSL в нем реализована по максимому. Например, существует расширение TCL, написанное как библиотека к нему, которое превращает его в язык похожий на smalltalk и ruby: вызов методов через посылку сообщений, интроспекция объектов и классов, возможность динамически изменять классы и отделные объекты, возможность менять класс объекта (!) и, конечно же, мета-классы и method_missing. Именно на этом расширении я и буду писать. Имя ему xotcl.

Я соглашаюсь с тем, что данная статья распространяется на условиях CC-NC-BY

Задача №93

Время на прочтение1 мин
Количество просмотров581
Используя каждую цифру из множества {1, 2, 3, 4} только один раз, арифметические операции (+,, *, /) и скобки, возможно получить различные целые числа.

Например,

8 = (4 * (1 + 3)) / 2
14 = 4 * (3 + 1 / 2)
19 = 4 * (2 + 3) 1
36 = 3 * 4 * (2 + 1)

Замете, что объединение цифр, такое как 12 + 34, не позволительно.

Используя набор цифр {1, 2, 3, 4}, возможно получить множество положительных целых чисел из тридцати одного элемента, в котором максимальное 36, и которое содержит все числа из промежутка от 1 до 28.

Найдите набор из четырех различных цифр, таких что a < b < c < d, и которые содержат максимальный промежуток всех чисел от 1 до n.

P.S. Предыдущая задача оказалась слишком простой и скучной, эта задачка мне показалась более интересной, и надеюсь она не повторит её судьбу.

Задача №24

Время на прочтение1 мин
Количество просмотров783
Перестановка это линейно упорядоченное множество. Например, 3124 это одна из возможных перестановок цифр 1, 2, 3 и 4. Если список всех перестановок отсортирован численно или по алфавиту, то говорят, что он имеет лексикографический порядок. Лексикографический список всех перестановок цифр 0, 1 и 2 это:

012 021 102 120 201 210

Найдите миллионную перестановку в лексикографическом списке всех перестановок цифр 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.

Задача №32

Время на прочтение1 мин
Количество просмотров830
Число 7254 необычно, так как его представление в виде 39 × 186 = 7254 содержит все цифры от 1 до 9 ровно по одному разу.

Найти сумму всех таких чисел, чье представление в виде произведения множимого и множителя содержит все цифры от 1 до 9 ровно по одному разу.

ХИНТ: Некоторый числа могут иметь более, чем одно такое представление, проверьте, что в сумме вы учли их один раз.

Задача №29

Время на прочтение1 мин
Количество просмотров594
Рассмотрим все числа, порожденные формулой ab, где a, b — целые: 2 ≤ a ≤ 5 и 2 ≤ b ≤ 5:

22=4, 23=8, 24=16, 25=32
32=9, 33=27, 34=81, 35=243
42=16, 43=64, 44=256, 45=1024
52=25, 53=125, 54=625, 55=3125


Если разместить их в ряд по возрастанию без повторения, то они образуют последовательность из 15 элементов:
4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

Сколько будет элементов в последовательности, порожденной следующим условием ab, где 2 ≤ a ≤ 100 и 2 ≤ b ≤ 100?

оригинал

UPD: По анализу критики в виде минусов предлагаю публиковать решения в личном блоге. Пример оформления решения. Это интересно?
2

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность