Обновить
63
1.3

Programmer

Отправить сообщение
Это я знаю, когда-то на rsdn читал статьи про язык nemerle. Это все определения той или иной степени формальности: от совсем неформальных («продвинутый enum») до строгих математических.
Но что это дает в реальном кодинге?
В чем киллер-фича ADT?
Ну я совсем не это хотел получить в ответ:) Меня интересует не реализация на хаскеле, а общие принципы.
Все что я хотел узнать — что такое АДТ с точки зрения классических императивных языков, а не Хаскеля.
Не совсем.
Вот допустим, я понял следующее.
Есть функция, принимающая на вход допустим тип T1 и возвращающая тип T2. Простая функция, ведать не ведающая ни о каких монадах.
Все эти конструкции (функторы, аппликативные функторы и монады) позволяют подавать на вход функции и получать на выходе этой функции разные другие типы, порожденные на основе T1 и T2 соответственно (например, Maybe, List, Future и т.д.). Что важно — без переписывания кода функции. Функция как не знала о монадах, так и дальше не знает, но мы получаем принципиально новые возможности в программе.
То есть если у нас есть функция увеличения числа на 1, мы можем ее совершенно прозрачно применить к целому списку чисел, получив на выходе другой список.
Я прав?
То есть получается, что для списка Maybe будет работать, а для массива фиксированной длины — нет? Почему?
Поясните плиз. Для меня «коллекция n элементив типа a» это массив a[n] :)
Какие типы не АТД? Что нужно «сломать» в АТД, чтобы он перестал быть АТД?
Я очень хочу разобраться в этом вопросе и помочь разобраться другим. Статью ту я с интересом читал как и многие другие статьи по теме здесь (но все равно спасибо, освежу в памяти).
Просто если есть люди, которые безусловно понимают тему на глубоком уровне (как автор топика), то почему не воспользоваться их присутствием на Хабре? Серией наводящих вопросов (возможно даже глупых) можно уточнить некоторые моменты, попытаться совместными усилиями переформулировать результаты обсуждения несколько раз до тех пор, пока не будет достигнуто полное понимание со стороны незнающих и согласие в корректности и полноте формулировок со стороны знающих.
Комментарии к статье ИМХО идеальный вариант для этой цели.
Спасибо за статью!
И как всегда объяснения на Хаскеле:) Думаю, для людей знакомых с Хаскелем, думаю это все и так понятно, а для незнакомых… сложно просто ориентироваться в коде, в синтаксисе языка, даже чтобы «распарсить» программу в уме.
Я время от времени все пытаюсь понять, что же такое эти функторы и монады, чего-то даже иногда понимаю, но единой картины все-же нет.
Начать надо с вопроса — что такое алгебраический тип данных и в чем его отличие от неалгебраических? Если пользоваться терминологией императивных языков, то например переменная типа int — АТД? Массив чисел? Структура? Класс?
В вашей предыдущей статье вы даете определение АТД как «АТД называются алгебраическими, потому что их можно представить как некую алгебраическую композицию типов его составляющих», но это все-же несколько не то, что могло бы облегчить понимание)…
А есть WYSIWYG редакторы для этого формата?
Перед прочтением хотел спросить, помогло ли написание книги в улучшении вашего английского. Но вы пишете что «с английским проблем не было»:) Ну а вообще, как считаете — поможет ли наличие авторства книги к примеру в поиске работы в США?
Мне вспоминается, как я когда-то давно делал таблицу команд процессора 80x86 по книге Зубкова «Ассмеблер для dos windows и unix». Тогда тоже обратил внимание на «ICEPB» 0xF1. Но эта команда была «на виду», ее недокументированность сложно было не заметить. А вообще таких команд может быть неограниченное количество — ведь кроме «основой» таблицы, есть команды начинающиеся с 0x0F — та таблица содержит еще много «дырок», есть команды типа FPU устроенные аналогичным образом и т.п. Наконец, какая-нибудь редкоисползуемая или вообще недокументированная/незадействованная команда может делать что-то не то при определенном сочетании данных в регистрах.
А мне пофиг на украшения. И время как-то особо не смотрю (в крайнем случае действительно есть мобильник). Но я люблю хакерские гаджеты. Люблю вещи, которые всем своим видом напоминают об Информационных Технологиях. Смотрю на картинки к статье и душа радуется… причем олдскульный дизайн с несенсорными экранами и аппаратными кнопочками нравится гораздо больше современного.
Сам часов не ношу, но если вдруг внезапно по какой-то причине понадобятся — то буду смотреть именно в сторону «умных часов».
ИМХО все вполне очевидно.
Любая Власть всегда стремится сделать все, чтобы сохраниться и усилиться, и в частности устранить все, что ей может помешать — хотя-бы теоретически. Ясно, что неподконтрольные биткоины — это посягательство на территорию Власти, на ее прерогативу выпускать и контролировать деньги.
Но мы должны помнить о том, что мы — люди, граждане — единственная причина и единственный источник любой власти. Вот и все:)
Ну тогда возможно. Что-то вроде «одностороннего интернета», гибрид интернета и цифрового телевидения — передавать бродкастом не только видео, но и наиболее востребованные данные других типов, не требующие обратной связи…
Идея конечно неплохая, дополнительный входящий канал данных не помешает (но и не станет заменой обычного интернета конечно-же).
Что-то сомнительно, что мощности Wi-fi на пользовательских устройствах хватит чтобы спутник на околоземной орбите смог принять сигнал.
Ну так и по Хаскелю туториалы бесплатные есть:) Но туториал и книга — это ИМХО все-же разные вещи.
Пользуяь случаем, передаю вам пожелание издать какую-нибудь книгу по C++/Boost. Например Introduction to the Boost C++ Libraries в двух томах. Еще неплохо было бы книгу по LLVM, но их даже на английском нет в природе.
Скорее десятки миллионов… если не больше.
Гугл — великая компания, в который раз убеждаюсь.
Ну Гугл в принципе грамотно делает… вместе с панорамами делает всякие достопримечательности, " знаменитый Русский мост, который является самым длинным вантовым мостом в мире" и прочее лестные фразы для высокопримативных власть имущих самцов.
Хотя в Германии вот запретили, но по другой причине — о приватности беспокоятся:)
Мне вот интересно как у них так получилось на сельской местности сделать панорамы какими-то разорванными кусочками. Есть дорога или населенный пункт, там некоторое количество никак не связанных между собой довольно коротких «синих» участков где есть Street View, между ними ничего нету…

Информация

В рейтинге
1 688-й
Зарегистрирован
Активность