Функциональное программирование — это идея в головах людей(или если хотите, подход к решению), а не конкретный язык или набор фишек, впрочем стоит отметить, что определенный набор-таки позволяет сделать это проще и естественее.
А вообще да, как человек, который пишет на java и функциональных языках, могу сказать, что редко мешаю стандартные вещи из Java с идеями подчерпнутыми из функциональной среды — поэтому было бы невероятно интересно увидеть продолжение.
мое имхо, что стоить иметь хороший набор методик из разных источников и парадигм, чтобы выбрать что-то лучшее для решения задачи, но в реальной жизни иструменты довольно сильно ограничены, поэтому написанное выше отличный компромис между форсированными сверху инструментами и выбором идей для решения задач.
Мне кажется, что идея с bucket sort тут должна выстрелить в массив Elements[] на позицию RequestedNumber мы кладем число, где впервые встречается этот элемент (aavezel предлагает что-то очень похожее, только не понятно зачем ему более одного массива), т.е.
Время работы линейно($\BigO(n)$) от длины массива входных данных — быстрее сделать невозможно, потому что нам все равно придется все числа считать.
Раcход памяти псевдоконстанта — \BigO(k) где k = max(a_i)
Время на один запрос константна от длины входных данных
Говоря про RIAA, сразу стоит вспомнить начало века: Jack London — The Iron Heel: Jackson's case. Все знают, что то, что происходит, неправильно, но по букве закона(в нужной интерпретации, конечно). И закон откровенно эксплуатируется теми, у кого достаточно власти, чтобы использовать его именно так как им удобно. Ведь это достаточно прозрачно, что система, отмирая, в конвульсиях пытается спасти себя практически любой ценой.
Может быть, это конечно только мне кажется, но статья выглядит как невероятно резкое проявление личного мнения? Которое, причем, претендует на некоторую общность, что, честно сказать, вызывает некоторое сомнение.
Не могу не процитировать Сассмана по этому поводу:
«Решая задачу, попробуйте выразить ее на там языке[в той терминологии], на котором она бы решалась легко».
Так вот, выбор языка(не обязательно языка программирования) во многом определяет способ мышления(он определяет примитивы\выразимость\структуры данных, стандарные модели\паттерны\алгоритмы\библиотеки, личный опыт связанный с языком, синтаксический сахар, сообщество, etc), а тут уже сидит человеческий фактор! А значит и восприятие ЯП во многом зависит от человека, а следовательно, утверждения про супер-языки и их степень применимости во многом субъективны. Что в свою очередь, позволяет усомниться в общности, на которую претендует автор в своей статье.
Кстати говоря, за более подробным описанием часто используемого математического аппарата можно порекомендовать «Конкретную математику» — Грехем, Кнут, Поташник. В частности глава 7, пункт 5(в 3м издании 391 стр.) — производящие функции, пример 4 — рекуррентное отношение со сверткой. Тогда вся подноготная, которую автор пытается донести станет намного понятней и доступней.
Все же не стоит забывать, что когда мы говори AI, мы подразумеваем некоторую аппроксимацию. Не стоит здесь впадать в крайности. Можно, например, приглядеться к парадоксу Umwelt, чтобы понять, что мы в собственном устройстве мозга понимаем до сих пор не всё.
Авторская же гипотеза подходит к одному из интереснейших математических понятий рефлексии, работа в этой области конечно же ведется причем не первый год. В частности, внес большой вклад наш соотечественник Лефевр(см. Конфликтующие структуры).
Мое личное( и честно сказать, не совсем «математически» строгое) мнение, что все же человеческий мозг определяется наличием абстрактно-символьного мышления, т.е. возможностью выбора системы исчисления, элементарных единиц с которыми он оперирует и в соотвествии с ними возможностью выбирать допустимую область операций и прочие радости жизни.
В порядке общего бреда: представил рекламу Apple, где по офису ходят модели; вдруг раздается звонок — короткий диалог и в режиме hot plug перетыкают iPhone'ы в стойке
По английскому языку найти большиство материалов в сети довольно просто, а вот собрать такое для остальных языков — будет просто бесценно.
А вообще да, как человек, который пишет на java и функциональных языках, могу сказать, что редко мешаю стандартные вещи из Java с идеями подчерпнутыми из функциональной среды — поэтому было бы невероятно интересно увидеть продолжение.
мое имхо, что стоить иметь хороший набор методик из разных источников и парадигм, чтобы выбрать что-то лучшее для решения задачи, но в реальной жизни иструменты довольно сильно ограничены, поэтому написанное выше отличный компромис между форсированными сверху инструментами и выбором идей для решения задач.
Если это не опечатка — асимптотическая сложность сортировки за корень, то можно как-то это пояснить?
Вроде бы мы проходим по циклу длины n и каждая итерация имеет сложность корень => O(n^1.5)
что-то упускаю?
4 1
2
3
5
1
5
Elements[2] = 2
Elements[3] = 3
Elements[5] = 4
Elements[1] = 5
-? Elements[5] -> 4
Время работы линейно($\BigO(n)$) от длины массива входных данных — быстрее сделать невозможно, потому что нам все равно придется все числа считать.
Раcход памяти псевдоконстанта — \BigO(k) где k = max(a_i)
Время на один запрос константна от длины входных данных
Не могу не процитировать Сассмана по этому поводу:
«Решая задачу, попробуйте выразить ее на там языке[в той терминологии], на котором она бы решалась легко».
Так вот, выбор языка(не обязательно языка программирования) во многом определяет способ мышления(он определяет примитивы\выразимость\структуры данных, стандарные модели\паттерны\алгоритмы\библиотеки, личный опыт связанный с языком, синтаксический сахар, сообщество, etc), а тут уже сидит человеческий фактор! А значит и восприятие ЯП во многом зависит от человека, а следовательно, утверждения про супер-языки и их степень применимости во многом субъективны. Что в свою очередь, позволяет усомниться в общности, на которую претендует автор в своей статье.
ru.wikipedia.org/wiki/Байесовская_сеть_доверия
Авторская же гипотеза подходит к одному из интереснейших математических понятий рефлексии, работа в этой области конечно же ведется причем не первый год. В частности, внес большой вклад наш соотечественник Лефевр(см. Конфликтующие структуры).
Мое личное( и честно сказать, не совсем «математически» строгое) мнение, что все же человеческий мозг определяется наличием абстрактно-символьного мышления, т.е. возможностью выбора системы исчисления, элементарных единиц с которыми он оперирует и в соотвествии с ними возможностью выбирать допустимую область операций и прочие радости жизни.