Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/187: Рейтинг темы: голосов - 187, средняя оценка - 4.77
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.02.2015, 23:45
Студворк — интернет-сервис помощи студентам
KolodeznyDiver, что скажу - из-за ворнингов за 3 года энтерпрайза до сих пор ни одной ошибки не было. Решарпер спасает Всё-таки статический анализ "из коробки" с инкрементальными изменениями (один раз весь проект при загрузке просканил, после этого работает постоянно фоном, на заметно), и ловит намного лучше этих "ворнингов"

Так что это я вас так просто пугаю. Эти ворнинги ни на что не влияют и ни к каким ошибкам не приводят. По крайней мере ни на моей памяти, ни на памяти коллег такого ни разу не происходило

В рантайме баги бывают, но ни ворнингами, ни ошибками они не ловятся, как правило (обычно не добавленная в кэш библиотека, или Nullreference где-то проскочил).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2015, 23:45
Ответы с готовыми решениями:

ООП или функции
Привет форумчанам! Такой вопрос нарисовался, Везде ли стоит применять ООП ? Например сейчас пишу маленький блог с простеньким...

ООП или Структурный подход?
Доброго времени суток! Могу ли я использовать процедурный подход программирования в PHP для разработки портала бронирование отелей с...

литература и/или статьи по ООП
Предложите литературу или скорее статьи по ООП, но с уклоном в элементарное понимание что это и для чего нужно а не обьяснение 3-х китов...

926
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
24.02.2015, 01:14
Для функциональных академистов (пора засунуть математическую парадигму в... ):
Миниатюры
ФЯП или ООП?  
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.02.2015, 01:28
Dennis Ritchie, да я согласен. Пробовал как-то написать многомерную оптимизацию на чистом F#... Из-за иммутабельности код розросся и стал непонятно как выглядеть, до сих пор страшно читать. Кусок кода можно найти здесь, но дальше куда больше ада было (правда, я всё удалил, для потомков ничего не осталось):
Реализовать процесс Грамма-Шмидта

Добавлено через 2 минуты
А вот как это выглядит на шарпе:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private Vector[] GramSchmidtProcess(Vector lambda)
        {
            var a = new Vector[n];
            for (int j = 0; j < n; j++)
                if (Math.Abs(lambda[j]) < epsilon) //Если ноль
                    a[j] = d[j];
                else
                {
                    a[j] = new Vector(n);
                    for (int i = j; i < n; i++)
                        a[j] += lambda[i]*d[i];
                }
            var b = (Vector[]) a.Clone();
            b[0].Normalize();
            for (int j = 1; j < n; j++)
            {
                for (int i = 0; i < j; i++)
                    b[j] -= Vector.TransposeAndMultiply(a[j], b[i])*b[i];
                b[j].Normalize();
            }
            return b;
        }
имхо намного понятнее.
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,696
Записей в блоге: 9
24.02.2015, 01:46
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Для функциональных академистов
Чистый ... альтернативно одарённый мэн писал. В Haskell допускается "нечистота" внутри чистых функций если она не выходит наружу. Однако, для правильного вычисления фибоначи (не единственного варианта) и этого не требуется.
Haskell
1
2
3
4
5
6
7
8
9
10
11
import Data.List
import Data.Bits
 
fib :: Int -> Integer
fib n = snd . foldl' fib' (1, 0) . dropWhile not $
            [testBit n k | k <- let s = finiteBitSize n in [s-1,s-2..0]]
    where
        fib' (f, g) p
            | p         = (f*(f+2*g), ss)
            | otherwise = (ss, g*(2*f-g))
            where ss = f*f+g*g
Цитата Сообщение от Psilon Посмотреть сообщение
Пробовал как-то написать многомерную оптимизацию на чистом F#... Из-за иммутабельности код розросся и стал непонятно как выглядеть
может быть виновато было не ФП, и даже не F#, а "волшебник"? ("сделать хотел грозу, а получил козу ... вместо хвоста нога, а на ноге рога").
Не обижайтесь. Для ФП нужен опыт.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
24.02.2015, 02:01
Цитата Сообщение от Psilon Посмотреть сообщение
Из-за иммутабельности код розросся и стал непонятно как выглядеть, до сих пор страшно читать.
Наверное, опыта мало, как говорит KolodeznyDiver. Моя первая программа на F# тоже содержала большое количество иммутабельности. Хотя, по-моему, это математический недостаток - делать всё иммутабельным. Именно поэтому на ФП и не сварить больших проектов.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В Haskell допускается "нечистота" внутри чистых функций если она не выходит наружу.
Я не про Haskell имел в виду, а про академико-математических лиспарей.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Однако, для правильного вычисления фибоначи (не единственного варианта) и этого не требуется.
Отрывок, который я предоставил не ставил цели - найти лучший вариант программы для вычисления чисел Фибоначчи. Вот главная соль:
Миниатюры
ФЯП или ООП?  
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,696
Записей в блоге: 9
24.02.2015, 02:14
Psilon, Кстати, я приводил пример своей двухмерной оптимизации методом Нелдера — Мида с одновременной генерацией html файла содержащего график трассировки деформирующихся многоугольников. В теме есть печеньки картинки!

Добавлено через 7 минут
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Вот главная соль:
Где то я видел что в Ди можно пометить ф-ию как чистую (без побочных эффектов). Ну, и, надо полагать, компилятор за этим будет бдить (иначе пометка бессмысленна). В Haskell наоборот. Помечаются нечистые ф-ии (с разными нечистыми эффектами), и их, тогда уже не вызвать из чистых. Есть бэкдор - фи-и тип unsafePerformIO, но, на то они и unsafe. Применяются только для отладки.

Добавлено через 3 минуты
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Именно поэтому на ФП и не сварить больших проектов.
Нет никаких ограничений в размере программы. Вставляю ссылку на первое что в голову приходит. https://ru.wikipedia.org/wiki/Xmonad
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
24.02.2015, 02:45
Цитата Сообщение от Psilon Посмотреть сообщение
Из-за иммутабельности код розросся и стал непонятно как выглядеть, до сих пор страшно читать
Скорее всего не из-за этого, а по причине отсутствия у Вас опыта/техники работы с такими языками.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я не про Haskell имел в виду, а про академико-математических лиспарей.
хм... лисп, pure functional... пардон, мсье, Вы опять сели в лужу. Вы уже давно не интересны. Не утруждайте себя "бросанием камней" в чей-то огород, Ваши камни - песок.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вставляю ссылку на первое что в голову приходит.
Ему это совсем неважно
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
24.02.2015, 03:17
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Где то я видел что в Ди можно пометить ф-ию как чистую (без побочных эффектов).
Да. Для этого используется пометка "pure".
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Ну, и, надо полагать, компилятор за этим будет бдить (иначе пометка бессмысленна).
Совершенно верно. Практически также в книге и написано.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Нет никаких ограничений в размере программы.
Цитата Сообщение от castorsky Посмотреть сообщение
Ему это совсем неважно
Да. Программа не впечатлибельна.
Цитата Сообщение от castorsky Посмотреть сообщение
у Вас опыта/техники работы с такими языками.
Мне смешно смотреть на людей, которые потратили полжизни на изучение полностью бесполезных языков.
Цитата Сообщение от castorsky Посмотреть сообщение
Вы уже давно не интересны.
ФЯП - a big trouble a big project. Есть что сказать или ляпнуть в ответ?
Цитата Сообщение от castorsky Посмотреть сообщение
Не утруждайте себя "бросанием камней" в чей-то огород, Ваши камни - песок.
Нет, уж я покидаюсь. Я против лиспа и против лиспарей.
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
24.02.2015, 03:39
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я против лиспа и против лиспарей.
Ну да ну да. При этом заключение из скана для функциональных академистов ("Но подумав немного...") является вольным пересказом одного из тезисов On Lisp Грэма.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
24.02.2015, 03:45
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Мне смешно смотреть на людей
Вы тут единственный клоун как бы. И хоть я и не люблю разговор в плоскости "сам дурак", но Ваши знания настолько ничтожны, что на это как-то уже наплевать. Буйный капризный фанбой detected.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
ФЯП - a big trouble a big project. Есть что сказать или ляпнуть в ответ?
Сказано уже было, перечитайте тред. А "ляпнуть" это Ваша фишка, не претендую.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Нет, уж я покидаюсь.
Ну и где же? Чем Вы собираетесь кидаться, осчасливьте нас темных.
Цитата Сообщение от helter Посмотреть сообщение
является вольным пересказом одного из тезисов On Lisp Грэма
Да он кроме KR (и то под сомнением) ничего вообще в руки не брал, тут как бы бревно полололое.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.02.2015, 10:23
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Psilon, Кстати, я приводил пример своей двухмерной оптимизации методом Нелдера — Мида с одновременной генерацией html файла содержащего график трассировки деформирующихся многоугольников. В теме есть печеньки картинки!
ничего не понятно, но выглядит симпатично

Не по теме:

алсо метод деформируемого треугольника на самом деле метод деформируемого симплекса, потому что в общем случае оптимизация N-мерная, а обобщение треугольника на N-мерное пространство и есть симплекс :)



Цитата Сообщение от castorsky Посмотреть сообщение
Скорее всего не из-за этого, а по причине отсутствия у Вас опыта/техники работы с такими языками.
собственно я не спорю. Может как-нибудь сделаю вторую попытку. Первая принесла мне активное использование лямбд и инкапсуляция на уровне действий - пишем какое-нибудь преобразование над группой чего-нибудь, а потом просто передаем делегат на нужную фукнцию:
C#
1
2
3
4
5
6
7
8
        public void ProcessAllPoints(Action<Vector> action)
        {
            foreach (var point in Points)
            {
                action(point);
            }
            OnShapeChanged();
        }
Так что может второй заход еще какие секреты откроет
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
24.02.2015, 10:39
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Для функциональных академистов (пора засунуть математическую парадигму в... ):
Какой-то школобред в статье. Для справки: вычислительная сложность, о которой говорит автор «доклада», — это самая, что ни на есть, математика.

Добавлено через 2 минуты
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я не про Haskell имел в виду, а про академико-математических лиспарей.
Лол, в лиспах мутабельности больше, чем в Хаскелле и ничем не меньше любого императивного язычка, ибо лиспы мультипарадигмальны.

Добавлено через 9 минут
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
ФЯП - a big trouble a big project.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Именно поэтому на ФП и не сварить больших проектов.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Мне смешно смотреть на людей, которые потратили полжизни на изучение полностью бесполезных языков.
Так где там большие и полезные проекты на D?
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,696
Записей в блоге: 9
24.02.2015, 13:39

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
алсо метод деформируемого треугольника на самом деле метод деформируемого симплекса
Я, в заголовке программы и написал - метод деформируемого многогранника. Я в курсе что он для N-мерности годится, но мне нужен был для 2-х.


Цитата Сообщение от Psilon Посмотреть сообщение
Может как-нибудь сделаю вторую попытку
Я всем говорю (надоел уже). Надо книжки вначале внимательно читать, решать учебные примеры, и только потом браться за симплексы. Высказывание, конечно - опломбно-назидательное, но я опломба с назидательностью не хочу, я просто, на своём опыте убедился.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Да. Программа не впечатлибельна.
При чём тут впечатлибельна - не впечатлибельна. Она большая. Вам сколь большую надо - размером с винду? Помотрите в вики, для общего развития, про Erlang, что на нём наваяли.
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Нет, уж я покидаюсь. Я против лиспа и против лиспарей.

Не по теме:

Звонок в дверь. Открываю: стоят двое с постными ...лицами. Одежды круглыми скобками изрисованы. Протягивают брошюрки "Познай лисп и спасёсься! Отринь приоритеты операций и статическую типизацию!". Пришлось повесить на входную дверь портрет БГ - пока помогает. :p

0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.02.2015, 14:26
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Я всем говорю (надоел уже). Надо книжки вначале внимательно читать, решать учебные примеры, и только потом браться за симплексы. Высказывание, конечно - опломбно-назидательное, но я опломба с назидательностью не хочу, я просто, на своём опыте убедился.
да я нормальных книжек по ФП и не видел Застрял в "Мире лиспа" где-то на второй сотне страниц и забил. А написать однострочный метод по оптимизации (два цикла по массиву) - это неужели трудная задача? Да, названия вроде "Многокритериальные оптимизационные алгоритмы поиска в N-мерном пространстве" звучат круто, но на деле оптимизационные методы - примитивные алгоритмы. Сложность только в разработке алгоритма, а написание эквивалентной программы по уже имеющимся теоретическим формулам - дело техники. Поэтому я не понимаю, почему вы утверждаете, что это слишком сложная задача. По-моему в самый раз для знакомства с языком - а-ля написать решето Эратосфена или А* алгоритм.
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
24.02.2015, 15:42
Чего к лиспу привязались, не пойму. Не функциональный, но процедуры - объекты первого класса; ООП мощное; метапрограммирование. Да, скобки только одного вида и мало служебных слов и знаков препинания, роль которых выполняют пробелы, но это поверхность. Алгоритмы на нём описывать - примерно вот так:
Кликните здесь для просмотра всего текста

Practical Common Lisp, гл. 20
http://www.gigamonkeys.com/boo... ators.html

Аналогично, TAGBODY и GO могут быть полезны, когда переводятся алгоритмы, написанные или прозой, или диаграммами переходов – например в классической серии Дональда Кнута "Искусство программирования", он описывает алгоритмы, используя формат "рецептов": step 1, do this; step 2, do that; step 3, go back to step 2; и так далее. Для примера на странице 142, "Искусства программирования", Том 2: Получисленные алгоритмы, 3-е издание (Addison-Wesley, 1998), он описывает Алгоритм S, который вы увидите в Главе 27, в такой форме:

Алгоритм S (Метод выбора последовательности). Для выбора n случайных записей из множества N, где 0 < n <= N.

* S1. [Инициализировать.] Установить t <-- 0, m <-- 0. (В этом алгоритме m
представляет количество записей уже выбранных, а t общее количество
записей которые мы просмотрели.)

* S2. [Сгенерировать U.] Сгенерировать случайное число U, равномерно
распределённое между нулём и единицей.

* S3. [Проверить.] Если (N - t)U >= n - m, то перейти к шагу S5.

* S4. [Выбрать.] Выбрать следующую запись в последовательность и увеличить
m и t на 1. Если m < n, то перейти к шагу S2; иначе
последовательность закончена и алгоритм завершается.

* S5. [Пропустить.] Пропустить следующую запись (не включать её в
последовательность), увеличить t на 1, и вернуться к шагу S2.

Это описание может быть легко переведено в Коммон Лисп функцию, после переименования нескольких переменных таким образом:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun algorithm-s (n max) ; max это N в алгоритме Кнута
  (let (seen               ; t в в алгоритме Кнута
        selected           ; m в алгоритме Кнута
        u                  ; U в алгоритме Кнута
        (records ()))      ; список, где мы сохраняем выбранные записи
    (tagbody
     s1
       (setf seen 0)
       (setf selected 0)
     s2
       (setf u (random 1.0))
     s3
       (when (>= (* (- max seen) u) (- n selected)) (go s5))
     s4
       (push seen records)
       (incf selected)
       (incf seen)
       (if (< selected n)
           (go s2)
           (return-from algorithm-s (nreverse records)))
     s5
       (incf seen)
       (go s2))))
Это не самый красивый код, но легко проверить, что это канонический перевод алгоритма Кнута. Однако этот код, в отличии от прозаического описания у Кнута, может быть запущен и проверен. Затем вы можете начать рефакторинг, проверяя после каждого изменения, что функция всё ещё работает.

Сложив все кусочки, вы возможно получите что-то наподобие этого:

Lisp
1
2
3
4
5
(defun algorithm-s (n max)
  (loop for seen from 0
     when (< (* (- max seen) (random 1.0)) n)
     collect seen and do (decf n)
     until (zerop n)))

Короче говоря, при чём лисп?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
24.02.2015, 16:06
Цитата Сообщение от helter Посмотреть сообщение
При этом заключение из скана для функциональных академистов
Это не скан, а скриншот.
Цитата Сообщение от korvin_ Посмотреть сообщение
Так где там большие и полезные проекты на D?
Будут в ближайшем будущем.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вам сколь большую надо - размером с винду?
Да. Желательно какой-нибудь Linux, написанный на Haskell.
Цитата Сообщение от helter Посмотреть сообщение
Короче говоря, при чём лисп?
Тухлый.
Цитата Сообщение от korvin_ Посмотреть сообщение
ибо лиспы мультипарадигмальны.
Я уже говорил, что так не получится: развить несколько парадигм в равном соотношении. Какая-нибудь парадигма будет всё равно преобладать.
Цитата Сообщение от korvin_ Посмотреть сообщение
Для справки: вычислительная сложность, о которой говорит автор «доклада», — это самая, что ни на есть, математика.
Я не про вычислительную сложность хотел сказать, а про то, что бороться за чистоту функций и иммутабельность переменных внутри этих функций - это бред функциональных академиков.
Цитата Сообщение от castorsky Посмотреть сообщение
Чем Вы собираетесь кидаться, осчасливьте нас темных.
Кинусь одной строчкой D :
C++
1
2
3
4
5
6
7
import std.stdio, std.range;
 
void main()
{
    /* вывод всех чисел фибоначчи до переполнения беззнакового целого числа */
    writeln(take(recurrence!"a[n-1]+a[n-2]"(1u, 1u), 47));
}

Не по теме:

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Пришлось повесить на входную дверь портрет БГ - пока помогает.
Не. Я всего лишь Александреску на дверь гвоздём прибил.

0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,696
Записей в блоге: 9
24.02.2015, 16:35
Цитата Сообщение от Psilon Посмотреть сообщение
да я нормальных книжек по ФП и не видел
Если Вы собирались писАть на F#, то спросить про литературу стОит у pycture. Я читал (с 5-е на 10-е) "D.Syme, A.Granicz, A.Cisternino - Expert F# 3.0, 3rd Edition - 2012.pdf" - есть на торрентах. Где на русском не знаю.
Цитата Сообщение от Psilon Посмотреть сообщение
А написать однострочный метод по оптимизации (два цикла по массиву)
Вот в этом, наверно, и была сложность - в отсутствии циклов. Начинают с азов - перевернуть строку рекурсией, левая свёртка через правую и подобное. Есть сайты - задачники. Я решаю задачки на codewars.com, но F# там нет, а где есть - не знаю, увы.
Опять же, к pycture.
Цитата Сообщение от helter Посмотреть сообщение
Чего к лиспу привязались, не пойму.
Не к лиспу, а к некоторым лисперам, которые настойчиво всех вокруг убеждают что писать надо на нём, что на нём всё сделано уже давно и заведомо лучше чем на других языках и подобное.

Добавлено через 14 минут
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
writeln(take(recurrence!"a[n-1]+a[n-2]"(1u, 1u), 47));
Сами же кидались сканом где написано что так считать нельзя. Плюс только до переполнения беззнакового целого числа. В учебной задачке на сайте http://www.codewars.com требуется определять значения чисел фибоначи для конкретного номера до 1500000. Номера, а не выходного значения! Представьте решение считающее несколько секунд. На том сайте можно, кстати, и на питоне решать.
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
24.02.2015, 17:18
Может, у recurrence мемоизация. Кстати, то, что в кавычках после recurrence - неужели строка?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
24.02.2015, 17:32
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Я читал (с 5-е на 10-е) "D.Syme, A.Granicz, A.Cisternino - Expert F# 3.0, 3rd Edition - 2012.pdf" - есть на торрентах.
Самая новая книга на русском вот: Крис Смит - "Программирование на F#" [2011, PDF, RUS]. Жаль, что информация уже немного устарела, но книга нормальная.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Сами же кидались сканом где написано что так считать нельзя.
Нельзя. Я просто привёл пример, где решение занимает одну строчку без использования рекурсии в чистом виде.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Плюс только до переполнения беззнакового целого числа.
Это из-за функции take. Число 47 - это конец диапазона.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В учебной задачке на сайте http://www.codewars.com требуется определять значения чисел фибоначи для конкретного номера до 1500000.
Конечно, для этого нужно использовать другой, более мощный, алгоритм, который быстро считает номер нужного кролика (да-да, я не оговорился: номер кролика).
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
На том сайте можно, кстати, и на питоне решать.
Я уже давно зарегистрирован на том сайте, но много не участвовал в kata'х, потому что, во-первых, там всё на английском, во-вторых, я уже подзабыл Python. А C++, насколько я знаю, ещё не ввели.
Лучше заходите на Codeforces. Через 2 часа начнётся олимпиадное соревнование на русском здесь и на английском здесь. Есть и Haskell, и C/C++. F# нет, пока что. Будет 6 задач.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
24.02.2015, 17:33
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Будут в ближайшем будущем.
Вот когда будут, тогда и приходи.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Да. Желательно какой-нибудь Linux, написанный на Haskell.
Это подойдёт? Впрочем, у D вообще ничего нет, одни фанаты-академисты.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я уже говорил, что так не получится: развить несколько парадигм в равном соотношении.
Лол, но так получилось. Жаль, что в твою голову это не укладывается.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я не про вычислительную сложность хотел сказать, а про то, что бороться за чистоту функций и иммутабельность переменных внутри этих функций - это бред функциональных академиков.
А никто и не борется. Но неосиляторы вроде тебя и автора той статьи постоянно выдумывают что-то у себя в голове и потом воняют на форумах, типа того:
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
к некоторым лисперам, которые настойчиво всех вокруг убеждают что писать надо на нём, что на нём всё сделано уже давно и заведомо лучше чем на других языках и подобное.
— типичный пример нездоровой фантазии.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вот в этом, наверно, и была сложность - в отсутствии циклов.
Э-м, но в F# есть циклы (for ... in), (for ... to|downto) и while.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2015, 17:33

Гавнокоддинг или учить ООП?
Здравствуйте, дело такое, я пишу все свои скрипты в гавнокоддинге. Дело в том, что у меня все работает, что не работает спрашиваю на...

прога или игра ооп
Здравствуйте)Помогите пожалуйста)Нужно в ближайшее время сдать курсовую работу.Требуется сдать программу какую-нибудь либо игру(желательно...

Mysqli ООП или процедурный подход
Вот интересно, услышать мнение специалистов, что лучшие использовать при работе с mysqli ООП или процедурный подход, что больше используют...

Определить, программа с ооп или нет
Здравствуйте)Помогите пожалуйста разобраться с программой)Мне нужно сдать курсовую по объектно-ориентированному языку на С#.Мне здесь...

Изучаю ООП можно или нет так?
Это index: &lt;?php include('classes/database.class.php'); $object = new DB; $nick = &quot;Alex&quot;; $password = &quot;1&quot;; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
240
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru