Как мне подойти к серьезному проекту F # без знания C #?

11

Итак, по сути, проект, который я хочу осуществить, - это редактор SVG. Я бы предпочел использовать WPF, потому что тогда я могу использовать XAML для своего макета приложения (этот дизайнер такой изящный). К сожалению, я использую .NET Framework всего несколько месяцев и до сих пор незнаком с большинством имен классов.

Цель состояла в том, чтобы использовать F #, потому что это функциональный язык программирования, и рекурсия F # и замечательные операции со списками в сочетании с кортежами будут хорошо работать для того, чего я пытаюсь достичь. И цель состоит в том, чтобы использовать .NET из-за его огромной библиотеки доступных и документированных классов с примерами.

Я уже посмотрел на этот вопрос. /software/3129/is-there-a-canonical-book-on-f Но ответы только для F # в общем и предполагают, что вы уже знаете C #, что не особенно полезно для меня ,

Главной книгой в качестве ответа на вопрос, упомянутый выше, было Функциональное программирование в реальном мире: с примерами на F # и C #. Тем не менее, 3-звездочный обзор Амазонки в этой книге, хотя и довольно резкий и, возможно, правильно преувеличенный, иллюстрирует мою проблему.

Если вы интересуетесь функциональным программированием, но не изучаете C # и не хотите изучать F #, вы можете смело пропустить эту книгу.

Я посмотрел в Интернете примеры WPF F #, здесь и там есть разные фрагменты кода, но ничего существенного или демонстрационного, что он используется вне одного файлового скрипта .fsx, и ничего на самом деле корпоративного уровня или хотя бы профессионального уровня.

Так что даже у Microsoft на самом деле не так много примеров того, как делать .NET в F #. Примеры, которые я нашел, - это обычно только функции, уникальные для F #. Взгляните на базовые и расширенные разделы F #, и вы обнаружите, что они виновны только в обучении синтаксису. Например, MSDN на WPF для класса Line не имеет примеров кода на F #.

Когда вы прокручиваете вкладку примера кода для F #, она просто говорит

No code example is currently available or this language may not be supported.

Имея так мало доступных примеров кода, мне трудно реализовать этот проект.

Мой вопрос,
я был бы признателен за помощь в понимании того, как я должен подходить к этому проекту, используя F #, когда я не очень хорошо знаю C #.

Александр Райан Баггетт
источник

Ответы:

10

Разбейте проблему на две части.

  1. Изучите основы F #, исключив использование WPF. Узнайте, как писать функции без использования mutablesи while statementsи использования function composition. Как только вы это сделаете, узнайте, как использовать изменяемые таблицы для обновления состояния.

  2. Узнайте, как использовать WPF в F #, прочитав статью «Изучение WPF через F #» и наоборот , Джон Ляо.

Если вы не можете найти код, который вам нравится в F #, помните, что F # является потомком OCaml, поэтому Google для OCaml и SVG, и вы можете найти что-то интересное. Хотя F # не может скомпилировать OCaml, он очень близок и не должен занимать много времени для преобразования. Я конвертировал большое количество OCaml в F # и все это конвертировал.

Гай Кодер
источник