Возможно стоит разделить оценки на «сонгласен / не согласен» и «написано хорошо / не очень». Бывают темы написанные отлично и нужно поставить плюс, но с выводами не согласен, вроде как минус. Что ставить?
Нужно кучитывать то, что Windows 7 мало кто выбирает самостоятельно. Просто с Windows XP сегодня уже ничего не купить, вот вам и популярность. Так что в большинстве случаев это не выбор пользователей, если говорить о домашних компьютерах/ноутбуках.
В корпоративном секторе бывает по разному. Если существует прописанная политика исполльзовать XP (как у нас), то даже на купленные семёркой ноуты ставим XP по праву даунгрейда.
Бесспорно, на запада больше инноваторов, зато на востоке умеют довести технологию до блеска. Вместо того, чтобы воевать за «это была моя идея посадить сдесь дерево!» можно выращивать лес. Современность такова, что каждый пытается выделиться, но так было не всегда.
Видео просто шикарное и красиво отражает то, что сейчас в реальности происходит. Давайте представим, что они, вместо того, чтобы топтаться на месте и тормозить друг друга, договорятся и будут висеть друг у друга на хвосте по очереди?
1. Я правильно понимаю, что " a -> a -> a" означает:
Берём x типа a, выполняем f(x) и получаем функцию y -> z, т.е. f(y)=z,
затем, собственно, берём f(y) и получаем z.
2. В таком случае «a -> a -> a-> a» будет тоже самое, что и «a -> (a -> (a-> a))»?
Т.е. из функции f(x1) получаем f(x2), из неё f(x3), а из неё результат, верно?
Таким образом, max определён для любого a (принадлежащего к классу Ord), принимает два аргумента одного типа и возвращает результат того же типа.
Можете пояснить что означает запись "(Ord a) => a -> a -> a"? Не очень обозначения "=>" и "->". "=>" означает, на сколько я понял, «max определён для любого a (принадлежащего к классу Ord)», но "->", судя по всему имеет не всегда один и тот же смысл. В случае «a -> a» это означает берёт аргумент типа и возвращает результат того же типа, но вот с «a -> a -> a» уже непонятно. Если бы было написано, например, «a a -> a» или «a, a -> a» или что-то ворде этого, то вопроса не возникло бы :)
Но тип функции можно представить и так:
max :: (Ord a) => a -> (a -> a)
И тут мы встречаем currying. Получается, что max принимает один аргумент и возвращает функцию типа (a -> a).
Любую функцию можно представить, как принимающую один аргумент и возвращающую другую функцию.
Что означает запись «max :: (Ord a) => a -> (a -> a)»? Это вывод интерпретатора или это вы вбили в интерпретатор для выполнения или…?
> IMHO большинству пользователей абсолютно безразлично есть исходники или нет.
Сами исходники пользователю лично редко нужны, но возможности, которые они дают, могут быть им полезны. Лично я понимаю как они мне полезны, поэтому поддерживаю именно открытый/свободный софт. Я не призываю остальных делать тоже самое. Те, кто хочет поддерживать закрытый — пускай поддерживают. Этот вопрос не связан с донейтами, по крайней мере, напрямую.
> А почему только опен-сорс?
Если софтина открыта, то она меньше зависит от одного конкретного разработчика. Если он её забросит или решит сделать платной, то кто-то другой может подхватить её и донейтить я буду уже другому/другим разработчикам. Кроме того я могу найти человека который добавит за деньги именно мне нужную фичу, если софтина открыта (пока так делать не приходилось, но потенциал такой есть).
> Можно пример выкупленной ранее коммерческой софтины, которая теперь бесплатна благодаря вам.
Примера выкупленной софтины нет, я вкладывался в добавление некоторых возможностей для OsmAnd (www.bidforfix.com/p/osmand.net), а так же ежемесячно донейчу этому проекту по $2.
Подсказал коллегам из Германии Redmine, так они про Jira навсегда забыли, а Redmine-у вот-вот донейт сделают.
В корпоративном секторе бывает по разному. Если существует прописанная политика исполльзовать XP (как у нас), то даже на купленные семёркой ноуты ставим XP по праву даунгрейда.
Берём x типа a, выполняем f(x) и получаем функцию y -> z, т.е. f(y)=z,
затем, собственно, берём f(y) и получаем z.
2. В таком случае «a -> a -> a-> a» будет тоже самое, что и «a -> (a -> (a-> a))»?
Т.е. из функции f(x1) получаем f(x2), из неё f(x3), а из неё результат, верно?
Можете пояснить что означает запись "(Ord a) => a -> a -> a"? Не очень обозначения "=>" и "->". "=>" означает, на сколько я понял, «max определён для любого a (принадлежащего к классу Ord)», но "->", судя по всему имеет не всегда один и тот же смысл. В случае «a -> a» это означает берёт аргумент типа и возвращает результат того же типа, но вот с «a -> a -> a» уже непонятно. Если бы было написано, например, «a a -> a» или «a, a -> a» или что-то ворде этого, то вопроса не возникло бы :)
Что означает запись «max :: (Ord a) => a -> (a -> a)»? Это вывод интерпретатора или это вы вбили в интерпретатор для выполнения или…?
Не знаете как починить?
Сами исходники пользователю лично редко нужны, но возможности, которые они дают, могут быть им полезны. Лично я понимаю как они мне полезны, поэтому поддерживаю именно открытый/свободный софт. Я не призываю остальных делать тоже самое. Те, кто хочет поддерживать закрытый — пускай поддерживают. Этот вопрос не связан с донейтами, по крайней мере, напрямую.
Если софтина открыта, то она меньше зависит от одного конкретного разработчика. Если он её забросит или решит сделать платной, то кто-то другой может подхватить её и донейтить я буду уже другому/другим разработчикам. Кроме того я могу найти человека который добавит за деньги именно мне нужную фичу, если софтина открыта (пока так делать не приходилось, но потенциал такой есть).
> Можно пример выкупленной ранее коммерческой софтины, которая теперь бесплатна благодаря вам.
Примера выкупленной софтины нет, я вкладывался в добавление некоторых возможностей для OsmAnd (www.bidforfix.com/p/osmand.net), а так же ежемесячно донейчу этому проекту по $2.
Я говорю о таком: www.redmine.org/projects/redmine/wiki/Donors
Как минимум потому, что вы можете купить кота в мешке.