Форум программистов, компьютерный форум, киберфорум
F# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 26.07.2014
Сообщений: 7
1

С чего лучше начать учить F#, если есть знания .NET

26.07.2014, 21:09. Показов 2349. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Конечно же, я не новичок. Я очень даже неплохо знаю "C", C++, C#, Pascal и VB.NET. Немало я решил заданий в , решал задачи из учебников и придумывал сам. Случалось работать на фрилансе, где я вроде бы проявил неплохое знание мейнстримовых языков, а главное, способность быстро схватывать новое и даже редкое, в мире языков, платформ и всяческих библиотек.

Но вот из Школы программиста я вырос (до конца ее не окончил, но стало очень неинтересно, и там нельзя писать на VB.NET и C#). Задачи из учебников закончились, все они... слишком простые, что ли. На фрилансе работаю потихоньку, часто приходится осваивать новое, но...

Но меня все тянет к экзотическим, едва ли не эзотерическим, языкам, хотя и популярны они, по определению мало, и на фрилансе тоже.
Писал я на скандальном J#, почившем в 2005 году.
Еще новичком видел провальные Delphi 8 и Delphi Prism, сравнивал с 7.
Много помогал новичкам с вопросами по C++/CLI, которым, бедным, и помочь часто бывает некому (может, у меня попросту зашкаливает ЧСВ, но, по-моему, кроме меня, его хорошо знает всего несколько десятков человек на всю Москву, причем я едва ли не лучше всех).

И вот сейчас захотелось мне изучить F#. Спонтанно. Но серьезно.
Четких целей, что именно я буду писать, у меня нет.
Я вообще не знаю, что на этом языке пишут и в чем ему уступают C# и VB.NET.
Это и хотелось бы узнать у вас. И литературу посоветуйте - ее мало, и выбирать как-то не из чего... Да! И обязательно ли для этого нужно покупать платную Visual Studio Professional, или достаточно Express? Жаба душит на баловство тратить штуку баксов.

В целом, интересует следующее:
1) Что на этом языке пишут? Почему многие предпочитают его, а не C# и VB.NET? Чем он лучше и для чего лучше?
Можно ли применять его в Winforms и WPF?
2) Какие книжки почитать? Чтобы было расписано понятно, с примерами, ну и лучше по-русски. И главное - были описаны задачи, которые решают именно на F#, а не на чем-то другом, в целях удобства. Хоть кратко.
3) Обязательно ли покупать платное издание Visual Studio, или можно приспособить Express? Или халявщику лучше взять что-то альтернативное?

И если не трудно, то то же самое - о Boo и IronPython. Я понимаю, это экзотика, но хочется именно экзотического. И вдруг действительно есть вещи, которые шарпер пишет 2 суток, а ф-шарпер несколько часов.

P.S. Прошу прощения за многобуквие. Вроде бы в конце все более-менее конкретно, по пунктам.

Добавлено через 7 минут
Почему у меня ссылка на сайт Школы программиста запикивается звездочками?
Сайт в черном списке?
Там что-то запрещенное на данном форуме, или он ему конкурент?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2014, 21:09
Ответы с готовыми решениями:

.NET с чего начать изучение?
Посоветуйте пожалуйста с чего начать изучение .NET? У меня есть опыт работы с С/С++, знаю...

С чего начать изучение платформы .NET?
с чего начать изучение платформы .net?

С чего начать учить ASP.NET
Здравствуйте уважаемые! Подскажите пожалуйста с чего начать учить ASP.NET, может какие-то видео...

С чего лучше начать учить Java? С книг или сайтов, или лекций?
Всем привет! Нужна ваша помощь. Помогите пожалуйста новичку в изучении Java! Скажите пожалуйста...

13
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
26.07.2014, 23:08 2
Цитата Сообщение от Пент Хаус Посмотреть сообщение
1) Что на этом языке пишут? Почему многие предпочитают его, а не C# и VB.NET? Чем он лучше и для чего лучше?
То же что и на С#. В основном обработка данных, но могут быть варианты (есть шаблон проекта для Asp.Net Mvc 4/5, Wae Api2). WebForm и WPF тоже можно родить но для них не будет дизайнера форм (народ выкручивается, но особо смысла в этом нет). Заявлена полноценная поддержка в Xamarin. Также может использоваться как скриптовый язык.
Почему многие предпочитают его, а не C# и VB.NET? Чем он лучше и для чего лучше?
Писанины в разы меньше. Отладка прозрачнее. Поддержка проще
3) Обязательно ли покупать платное издание Visual Studio, или можно приспособить Express? Или халявщику лучше взять что-то альтернативное?
Экпресса достаточно. В VS 2013 for Web точно есть.
И вдруг действительно есть вещи, которые шарпер пишет 2 суток, а ф-шарпер несколько часов.
Теоретически такое вполне может быть. Практически зависит от задачи. Но в целом писать гораздо быстрее.
И литературу посоветуйте - ее мало, и выбирать как-то не из чего.. 2) Какие книжки почитать? Чтобы было расписано понятно, с примерами, ну и лучше по-русски.
Литература в теме Литература для изучения F#
3 первые книги в том же порядке и читать
Programming F# [Chris Smith]
Expert F# [Don Syme]
F# for Scientists [Jon Harrop]
русскоязычные книги читать противопоказано
И главное - были описаны задачи, которые решают именно на F#, а не на чем-то другом, в целях удобства. Хоть кратко.
За время существования F# очень много перепозло м него в C#. И утверждать что чтото можно решить только на F# довольно сложно (хотя TypeProviders и Measures в C# еще не доползли). Но в целом многие задачи по алогритмам, извлечению и переработке данных до сих пор на F# решать удобнее.
1
0 / 0 / 1
Регистрация: 26.07.2014
Сообщений: 7
27.07.2014, 05:29  [ТС] 3
Также может использоваться как скриптовый язык.
Поподробнее бы здесь...

Писанины в разы меньше. Отладка прозрачнее. Поддержка проще
Примерчик можно?

Экпресса достаточно. В VS 2013 for Web точно есть.
Thanks. Также писать на F#, оказывается, можно в бесплатной среде SharpDevelop. В ней есть и IronPython и Boo.
Дизайнера форм в SharpDevelop нет

Еще один вариант - скачать бесплатный Visual F# и его и использовать. Его же можно прикрутить к Visual Studio Express 2010, не то
Isolated, не то Integrated Shell.

Литература в теме
Thanks. Посмотрю.

И утверждать что чтото можно решить только на F# довольно сложно
Я и не ожидаю такого. Но что-то же на нем решается легче, чем на C#...
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
27.07.2014, 07:19 4
Цитата Сообщение от Пент Хаус Посмотреть сообщение
Поподробнее бы здесь...
а что тут подробнее. файлы с расширением fsx как правило не компилируются в ехе, а просто исполняются. весь функционал F# и Net в них полностью доступен.
Примерчик можно?
вы придумайте пример на C# а там сравним. а насчте отладки и поддержки слишком долго расписывать сравнения. но могу показать такое
Код
[<Measure>]type m
[<Measure>]type s

let v1 = 1<m/s>
let v2 = 1<m>
что имеем. значение v1 содержит скорость. v2 расстояние. при случайной ошибке в описании формулы и попытке сложить v1 + v2 выражение просто не скомпилируется.
Studio Express 2010
врядли туда последнии версии прикрутяться. разумнее экспресс 2013 использовать.
Но что-то же на нем решается легче, чем на C#...
Как я сказал, обработка данных. Почти любых.
1
0 / 0 / 1
Регистрация: 26.07.2014
Сообщений: 7
27.07.2014, 07:36  [ТС] 5
а что тут подробнее. файлы с расширением fsx как правило не компилируются в ехе, а просто исполняются.
Вот. Это я и просил дописать. fsx. Дальше я смогу сам погуглить, почитать и понять, что да как в этом fsx.

но могу показать такое
Интересный пример... Но еще бы понять, что можно сделать с этими v1 и v2. Что с их помощью можно рассчитать, скажем так. Куда мне ввести расстояние и скорость, чтобы получить время? Или наоборот?

Как я сказал, обработка данных. Почти любых.
Даже сортировка одномерного массива?
Ведь это тоже обработка данных, причем, довольно часто применяемая практически.

Добавлено через 4 минуты
врядли туда последнии версии прикрутяться. разумнее экспресс 2013 использовать.
А почему бы нет?
Компилятор входит в Visual F#. Visual Studio, если я верно понял, здесь выступает всего лишь в качестве мощного текстового редактора, подобного Notepad++. Если там для F# нет даже дизайнера форм или окон WPF.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
27.07.2014, 10:10 6
Цитата Сообщение от Пент Хаус Посмотреть сообщение
А почему бы нет?
Как минимум NuGet в 2010 будет отсуствовать
Даже сортировка одномерного массива?
Код
Array.sort [|1; 4; 8; -2; 5|]
но такие примитивы и в С# доступны. лучше на транспонирование матрицы посмотреть
Код
// create marix
let xs = array2D [ [1..4]; [5..8]; [9..12] ] 
printfn "Source: \r\n%A" xs
// transpose matrix
let ys = [0.. Array2D.length2 xs - 1] |> Seq.map (fun i -> xs.[*,i]) |> array2D 
printfn "Result: \r\n%A" ys
в результате
Код
Source:
[[1; 2; 3; 4]
 [5; 6; 7; 8]
 [9; 10; 11; 12]]
Result:
[[1; 5; 9]
 [2; 6; 10]
 [3; 7; 11]
 [4; 8; 12]]
Куда мне ввести расстояние и скорость, чтобы получить время?
в значения и считать
Код
> let v1 = 60.0<m/s>;;
val v1 : float<m/s> = 60.0
> let l = 100.0<m>;;
val l : float<m> = 100.0
> l / v1;;
val it : float<s> = 1.666666667
>
единицы измерения в формулах будут выводиться автоматически (float<s>). если же перепутать и написать v1 / l то результатом будет float<1/s>, что очевидно неправильно, и в зависимости от использоваения результата может даже не скомпилироваться

Добавлено через 20 минут
пример Type Providers
http://fsharp.github.io/FSharp... vider.html
Вообще провайдеров довольно много. можно и самому писать.
а вот весьма интересное дополнение к имеющимся.
http://fsprojects.github.io/FSharp.Data.SqlClient/
как и принято, ошибки, включая в написании текстового Sql запроса, будут отловлены при компиляции
вместо того чтобы падать в рантайме
1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
31.07.2014, 16:15 7
IronPython и Boo - питоноподобные языки под .net
Первый только интерпретатор, второй и интерпретатор, и компилятор.
Boo, я щщетаю, мега-язык, но делает его один человек, нету цивильной поддержки в IDE (я, кстати, пытался написать для SharpDevelop подсветку для скобок в редакторе, но забросил), поэтому он обречён.
Мой очень старый пост о Boo http://dondublon.livejournal.com/76691.html .

Цитата Сообщение от Пент Хаус Посмотреть сообщение
И вдруг действительно есть вещи, которые шарпер пишет 2 суток, а ф-шарпер несколько часов.
Нет такого. F# - язык более строгий, поэтому писать на нём дольше. Просто в результате код получается более аккуратный, меньше сил на отладку, и, думаю, на понимание кода.
"Думаю" - потому что эффект должен проявляться на больших проектах, а их я на F# не писал.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
31.07.2014, 16:28 8
Цитата Сообщение от dondublon Посмотреть сообщение
F# - язык более строгий, поэтому писать на нём дольше.
не вижу логики. писать в разы меньше и при этом писать дольше? это как так?
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
31.07.2014, 16:36 9
Цитата Сообщение от pycture Посмотреть сообщение
не вижу логики. писать в разы меньше и при этом писать дольше? это как так?
Потому что дольше приходится думать
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
31.07.2014, 16:41 10
Цитата Сообщение от dondublon Посмотреть сообщение
Потому что дольше приходится думать
хе. так думать всеже не писать. а дольше думать в любом языке не повредит
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
31.07.2014, 16:48 11
pycture, не, ну реально.
Если в C# тебе редактор подчеркнул красной волнистой что-нибудь, значит - там ошибка.
Если подчеркнул в F# - запросто, ошибка может быть совершенно не там. Знакомо?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
31.07.2014, 16:51 12
Цитата Сообщение от dondublon Посмотреть сообщение
Если подчеркнул в F# - запросто, ошибка может быть совершенно не там. Знакомо?
сколько писал такого не припомню. пример есть?
1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
01.08.2014, 11:54 13
pycture, было, было. Сейчас не под рукой.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
01.08.2014, 12:49 14
Цитата Сообщение от dondublon Посмотреть сообщение
было, было. Сейчас не под рукой.
подозреваю что все это сводится к некорректному объявлению типов.
показываю на ... С#
C#
1
2
3
var x = 8 > 4;
// ......
Console.Write(5 + x);
какая строка подчеркнулась? третья.
а где ошибка? в первой вместо > по формуле использовалось /.
ну так что в результате? С# тоже показывает ошибку не там где надо?
0
01.08.2014, 12:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2014, 12:49
Помогаю со студенческими работами здесь

Что посоветуете тому, кто хочет начать учить Java? С чего начать изучение?
Какие книги посоветуете по Java? Какие программы? Дело в том, что хочу начать учить разработку...

Имеет ли смысл учить pascalАbc.net или лучше сразу учить Делфи
Имеет ли смысл учить pascalАbc.net или лучше сразу учить Делфи(имеется опыт программирования на...

Хочу начать учить C++ с чего начать?
Посоветуйте действительно хорошие книги/видео уроки по этому языку. За спиной у меня нет других...

С чего начать учить?
Посоветуйте учебные пособия и IDE для изучения C++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru