я должен действительно изучить Objective C для разработки основательных Приложений Mac?
В настоящее время, да.
, Поскольку пользователи Mac склонны использовать только приложения, которые имеют хороший (собственный) GUI, я не думаю, что Моно и GTK + или любой GUI Java (Swing) будет соответствовать их потребностям.
Корректный.
Там похожи на проекты Cocoa#, PyObjC и RubyCocoa, но действительно ли они готовы к прайм-тайму?
Cocoa#: Я не знаю, поскольку я не использую C#.
PyObjC: Вид, но Какао в Python является определенным взломом, так как Python не является Smalltalky достаточно.
RubyCocoa: Возможно. Я ожидаю MacRuby для назревания, все же. См. также:
Я нашел Project Euler полезным в изучении элементарных языковых конструкций, чтобы помочь мне почувствовать Haskell. Конечно, это не создание реального приложения с Haskell, но для меня это отличный способ освоить возможности языка. После этого я могу попытаться переписать некоторые мои небольшие приложения Python на Haskell (некоторые из них ориентированы на графический интерфейс). Так что, возможно, это будет вашим следующим шагом: возьмите что-то, что вы написали на другом языке, и попробуйте сделать это на Haskell.
Я бы порекомендовал взглянуть на ответ с наивысшей оценкой в следующем вопросе о переполнении стека. Я считаю, что предлагаемый курс обучения и активности является наиболее полным. На среднем уровне автор предлагает конкретные монады и библиотеки, с которыми можно поработать. Я, по крайней мере, нашел, что это очень помогло.
При этом я не имею представления о вашем относительном уровне знаний других языков или концепций. Когда я начал искать промежуточный «вызов», я не ставил очень высокой цели. Я был новичком во всех смыслах. Я бы сказал, что любое использование вами для управления списками станет отличным проектом.
Я тоже (медленно) изучаю Haskell, и я использую учебник Напиши схему за 48 часов . Возможно, это поможет вам следовать ему и, если хотите, вы всегда сможете его расширить.
Вот проблема, вдохновленная Почему функциональное программирование имеет значение Джона Хьюза: найти наиболее эффективный способ заархивировать оцифрованные альбомы на DVD:
Проблема заключается в следующем:
Если в двух разных упаковках используется одинаковое количество DVD, я предпочитаю тот, который оставляет больше всего свободного места на наименее заполненном DVD, так, чтобы все остальные DVD были как можно полнее.
повтор взять первый альбом из списка поместите альбом в первый DVD, на котором есть место для него пока в списке больше нет альбомовЗапишите все непустые DVD.
Решите следующие проблемы программирования:
pack :: [(Альбом, Целое число)] -> [DVD]где
тип Album = String тип DVD = [Альбом]Разложите свое решение на отдельные функции, как описано Хьюзом.
повторение вероятностно выбрать элемент из старого списка удалите этот элемент из старого списка и поместите его в конец новый список пока старый список не станет пустымЗатем вы выполняете алгоритм жадной упаковки возмущенного списка. Если упаковка улучшается, новый заказ становится основой для дальнейшие возмущения.
Вероятностный выбор параметризуется вероятностью p :
Проблема состоит в том, чтобы реализовать упаковку с помощью Bubble Search
Ваша функция может принимать в качестве аргумента бесконечный список случайных числа.
При p = 0,45 и 10 000 итераций поиск пузырьков может последовательно производить упаковки DVD, заполненные более чем на 99,5%.
Подсказки:
Попробовать {{курс student_set.all.0}}
. Механизм шаблонов не допускает произвольного кода, а синтаксис доступа к методу отличается от обычного кода Python. Я рекомендую прочитать этот обзор , чтобы понять, как работают шаблоны
По адресу:
q
, удалив его из адреса в конкретную память см. Документ по отмене привязки указателя . Однако из-за состояния , при котором
устанавливается адрес x , он может указывать на ячейку произвольного запоминающего устройства (не инициализирована), если x < = 0
. q
для указания на тот же адрес памяти, что и p
. Затем для p
выделяется новая память. Затем выделяется новая память, на которую указывает p
. q
. Теперь этот адрес памяти доступен для использования системой. И после этого вы присваиваете памяти значение, которое не "принадлежит" вам. x = 0
, то возвращается к системной памяти, на которую указывают q
и p
. И снова попытка использовать память, которая не "принадлежит" вам. Также отсутствует delete p
, если x! = 0
- таким образом память не возвращается в систему. rubyquiz.com имеет много хороших упражнений, которые довольно хорошо отображаются на haskell. Haskell wiki имеет реализации haskell некоторых, но не всех из них.