Форум программистов, компьютерный форум, киберфорум
F# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для denis_32
3 / 3 / 2
Регистрация: 02.08.2014
Сообщений: 60

Начало изучения F# в VS 2015

16.07.2016, 16:56. Показов 2667. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток, помогите разобраться.

Начал знакомство с F#, установил в Visual Studio 2015 нужный пакет обновлений для F#, создал новый проект консольного приложения Виндовс, выдало следующий шаблон

F#
1
2
3
4
5
6
7
// Дополнительные сведения о F# см. на [url]http://fsharp.org[/url]
// Дополнительную справку см. в проекте "Учебник по F#".
 
[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    0 // возвращение целочисленного кода выхода
Пытаюсь выполнять в VS примеры с учебника, да и сам пишу элементарные функции наподобие
F#
1
2
let func1 x = x * x
func1 5 |> System.Console.WriteLine
Подчеркивает аргумент функции x, мол он, почему то, является типом string (это когда я убирал стандартный предлагаемый VS шаблон, оставив лишь [<EntryPoint>])

А когда делал так:
F#
1
2
3
4
let main argv = 
    let func1 x = x * x
    func1 5 |> System.Console.WriteLine
    0 // возвращение целочисленного кода выхода
Ошибок не показывало, но в консоль не выводило ничего.


В чём проблема? И в какой среде лучше всего начать изучение F#?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2016, 16:56
Ответы с готовыми решениями:

Выбор книги для изучения C++ (C#) в Visual Studio 2015 (2013)
Добрый День! Хотел бы обратиться к Вам за помощью. Мне нужна книга для полного изучения языков программирования (в основном для изучения...

Начало изучения С
Здравствуйте, полазив на форумах я понял что для начала изучения программирования лучше начать с С. У меня есть пару вопросов: 1. Какой...

Начало изучения С++
Кого из авторов лучше выбрать для начала изучения С++: Шилдт, Страуструп, Дейтел? может быть еще есть хорошие варианты?

7
Заблокирован
16.07.2016, 17:48
Цитата Сообщение от denis_32 Посмотреть сообщение
Пытаюсь выполнять в VS примеры с учебника, да и сам пишу элементарные функции наподобие
denis_32, вместо System.Console.WriteLine используйте printfn

Цитата Сообщение от denis_32 Посмотреть сообщение
Подчеркивает аргумент функции x, мол он, почему то, является типом string (это когда я убирал стандартный предлагаемый VS шаблон, оставив лишь [<EntryPoint>])
Должно работать:
https://dotnetfiddle.net/z4dqdx

Цитата Сообщение от denis_32 Посмотреть сообщение
И в какой среде лучше всего начать изучение F#?
VS отлично подходит. Можно обновиться до VS2015.
1
 Аватар для denis_32
3 / 3 / 2
Регистрация: 02.08.2014
Сообщений: 60
16.07.2016, 22:00  [ТС]
Вот в том и дело, на .netfiddle код работает, все окей, а в VS 2015, я не могу этот код запустить.

Когда убираю шаблон, и оставляю просто пустые строки, и в них пишу
F#
1
2
let func1 x = x * x
func1 5 |> printfn
Аргументу функции "х" присваивается формат string, и даже когда я пишу

F#
1
let func1 x:int = x * x
Пишет ошибку, мол х всё-равно string.

Может быть это как то связано с тем, что я создал консольное приложение, или проблема в том, что я удалил

F#
1
2
3
4
[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    0 // возвращение целочисленного кода выхода
Мне мой код нужно вставлять в этот шаблон, данный VS2015 по умолчанию?
0
Заблокирован
16.07.2016, 22:38
Цитата Сообщение от denis_32 Посмотреть сообщение
Вот в том и дело, на .netfiddle код работает, все окей, а в VS 2015, я не могу этот код запустить.
denis_32, очень странно, какой у вас Update? VS2015 под рукой нет, потестировать не могу. Спрошу у знакомого...может что подскажет.
Скриншоты покажите, может они что-то прояснят?
Попробуйте еще запустить в F# Interactive - выделите строки кода и нажмите Alt + Enter.

Цитата Сообщение от denis_32 Посмотреть сообщение
Может быть это как то связано с тем, что я создал консольное приложение, или проблема в том, что я удалил
Нет и нет. Все должно работать нормально. Может баг в VS...
1
 Аватар для denis_32
3 / 3 / 2
Регистрация: 02.08.2014
Сообщений: 60
16.07.2016, 22:48  [ТС]
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

Разобрался)) Шаблон, который дал VS удалять ненужно было, т.к. компилятор считывал мою функцию стояющую после
Code
1
[<EntryPoint>]
как main, которая должна string значения в argv принимать
Правильный код был
F#
1
2
3
4
5
6
7
8
9
[<EntryPoint>]
 
 
let main argv = 
    let func1 x = x + 1
    (func1 5) |> printf "%d"
 
    System.Console.ReadKey() |> ignore
    0 // возвращение целочисленного кода выхода
Cпасибо за ответы))
1
Заблокирован
16.07.2016, 23:01
Лучший ответ Сообщение было отмечено denis_32 как решение

Решение

Цитата Сообщение от denis_32 Посмотреть сообщение
Шаблон, который дал VS удалять ненужно было, т.к. компилятор считывал мою функцию стояющую после
denis_32, вам нужно было просто удалить атрибут [<EntryPoint>]

Подробную информацию можно найти тут:
https://msdn.microsoft.com/en-... Bfsharp%5D

P.S. Поздравляю с выбором F#. Если вы еще и английским владеете, то присоединяйтесь к F# сообществу. Говорят, оно очень дружелюбно.
1
 Аватар для denis_32
3 / 3 / 2
Регистрация: 02.08.2014
Сообщений: 60
16.07.2016, 23:25  [ТС]
Да, действительно, удалил энтрипоинт, и все работает без main argv, спасибо))

p.s. Куда ж без английского, если все видео-уроки и книги по фшарпу на англе)
0
Заблокирован
16.07.2016, 23:38
Цитата Сообщение от denis_32 Посмотреть сообщение
p.s. Куда ж без английского, если все видео-уроки и книги по фшарпу на англе)
denis_32, не все, есть две книги на русском. Одна переводная и очень хорошая.

К сожалению, ни в школе, ни дальше в институте английский не выучил. Сейчас вот в свободное время пытаюсь кое как по самоучителю...Оставлю лирику - раз проблем с языком нет, то можно смело регистрироваться на
http://foundation.fsharp.org/join
После этого вы должны получить инвайт для FSSF канала в Slack-е

https://get.slack.help/hc/en-u... sing-Slack
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2016, 23:38
Помогаю со студенческими работами здесь

Начало изучения
Решил начать изучать DirectX SDK (2010 June). Нужна доходчивая и актуальная лит-ра по его изучению. Что посоветуете? P.S. Компилятор...

Начало изучения С++
Подскажите пожалуйста... С чего начать изучение С++(видео уроки, блоги и т.д.) Я уже взял основы(переменные, основные библиотеки, циклы,...

Начало изучения 1с
Подскажите учебную литературу. С чего можно начать изучение 1с как языка. Чтоб стать востребованным специалистом.

Начало изучения
Приветствую, ребята! Совсем недавно начал изучение ASP Core. Нашел книгу &quot;ASP Core MVC с примерами 6-е издание&quot;. Как я понял, там...

Начало изучения
Подскажите с чего начать. Нашел серию статей на хабре по ASP.NET4, но старшие коллеги сказали сразу на asp.net5 mvc6 учиться, т.к. много...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru