Марк Шевченко @markshevchenko
программист
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Backend Developer
Lead
From 450,000 ₽
C#
Rust
Algorithms and data structures
Functional programming
В мужских фамилиях 2 раза встречается окончание ЦКИЙ. При наличии ЦКИЙ и СКИЙ — не проще ли один раз проверить КИЙ, или есть какие-то часто встречающиеся исключения? Какова вообще была методика отбора окончаний?
В женских окончаниях есть ЦКАЯ и АЯ. Если есть второе, первое уже не нужно, если я правильно понимаю.
А вообще — интересно, спасибо. Есть ли у вас база реальных имён тысяч на 50-100? По ней прогоняли, проверяли процент попаданий?
Получится — очень хорошо.
Подумал я, подумал, и решил, что всё-таки контраст решает, не смотря на то, что дизайн получается жёстким и даже вызывающим.
А за исследование спасибо, интересно.
Хотя фф жалко чисто по человечески.
А то сейчас приходиться держать открытыми 4-5 вкладок.
> Компромисс, видимо, найден в том, что люди реализуют это в компиляторах,
> а не в VM.
Ровно наоборот. С течением времени, набор команд даже железных процессоров растёт — в том числе для того, чтобы упростить и ускорить всё, что выше микропроцессора. Что уж тут говорить о VM?
Вот там вот, ниже, вопрос от shai_xylyd. Вы уверены, что KAWA будет вызывать виртуальную функцию через JUMP?
За счёт этого и компилятор упрощается.
Не обязательно. Но реализаций VM без SL я ещё не видел. :)
> В любом случае, вместо QuickSort можно подставить кучу других алгоритмов посика,
> сортировки и т.п. Что, их всех в VM пихать?
Затем, что это конструкции разного уровня: алгоритм из ассемблерная инструкция. Можно ведь и в обратную сторону Ваш вопрос повернуть: зачем реализовывать на уровне процессора, например, арифметику с плавающей запятой, если компилятор прекрасно справляется?
Лично сам Haskell таки изучаю, наравне с F#. Практика практикой, а упражнения для головы тоже не помешают. :)
Ну и работу по переводу обычной рекурсии в хвостовую приходиться делать самостоятельно. Вместо:
приходится писать что-то вроде:
У меня, например, NEC 20WGX2. Игры, фильмы, программирование — в полный рост. Сейчас думаю переходить на 22-24 дюйма.
> прямо «взлетят» от распараллеливания…
Я тоже не думаю, что взлетят. Скорее, появится поле для реализации более сложных функций. Помните время, когда проверка правильности текста выполнялась отдельно от его ввода? А потом в Office 2000 (если не в 97) текст стал проверяться «на лету». Машины дорасли. Но тогда всё это делалось на одном процессоре, а тут, пожалуйста — ещё несколько таких же процессоров под боком.
Из того, что у всех на виду, ожидаю серьёзных прорывов в компьютерных играх. Там производительность всегда актуальна.
Вот с точки зрения прикладного разработчика не всё однозначно. Но вот, скажем, такая частая операция, как построение отчётов, параллелится влёт.
> Где гарантия, что всё это станет действительно быстрее работать? А не начнётся
> пыхтение, сопение и переключение контекстов и постоянные проблемы с кэшем и
> синхронизацией?
Вот тут не могу сказать. Насколько я представляю ситуацию сейчас, требуется определённый опыт параллельного программирования, чтобы избегать «опасных» способов распараллеливания. То есть, по сути, надо заставлять себя учиться новым способам думания. Но освоение функциональных языков в том числе предполагает изучение правильных способов думания.
> Только вот такие программы и на Си писать легко. Проблемы начинаются, когда
> возникает необходимость сделать «share something».
Я бы не сказал, что легко. Можно, но слишком многословно, и слишком нетрадиционно. Был у меня опыт написания библиотеки нечёткой логики на Си++, воспоминания весёлые. :) Закончилось тем, что когда я этот код пытался показывать другим программистам, они его не понимали, потому что воспринимали императивно. :)
Да, так вот, по поводу разделения ресурсов. Вы, конечно, правы. Но тут без конкретики уже очень сложно обсуждать. Вы приведёте мне проблему, которая не параллелится, я буду приводить проблему, которая хорошо параллелится, и так мы можем впасть в вечный цикл. :)
Будущее за браузерами, которые одновременно являются виртуальными машинами.
С функциональными значительно всё проще, вплоть до автоматического распараллеливания. Посмотрим, вдруг и окажется так, что хаскель быстрее си будет.