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

#light - синтаксис

07.07.2013, 12:15. Показов 1214. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В книге "Программироване на F#" Сошникова Д.В. есть пример:
F#
1
2
3
4
5
> let solve (a,b,c) =
   let D = b*b-4.*a*c in
    ((-b+sqrt(D))/(2.*a),(-b-sqrt(D))/(2.*a))
 in solve (1.0,2.0,-3.0);;
val it : float * float = (1.0, -3.0)
В 5 строчке получили числовой результат. Далее в книге предлагается применить #light - синтаксис, и приведен следующий пример:
F#
1
2
3
4
5
6
> let solve (a,b,c) =
   let D = b*b-4.*a*c
   ((-b+sqrt(D))/(2.*a),(-b-sqrt(D))/(2.*a));
solve (1.0,2.0,-3.0);;
 
val solve : float * float * float -> float * float
В 6 строке почему то уже такого же результата числового не получаем. В чем ошибка? (VS 2010, F# 2.0 Interactive, сборка 4.0.30319.1)

Приложил файл с кодом, идущий вместе с книгой.
Вложения
Тип файла: rar Chapter1.rar (2.2 Кб, 14 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2013, 12:15
Ответы с готовыми решениями:

Как перевести синтаксис макроса VBA (Excel) в синтаксис Visual FoxPro
Здравствуйте! Скажите пожалуйста, как перевести синтаксис записанного макроса в excel в синтаксис...

Как перевести синтаксис Intel в синтаксис AT&T? (ассемблерная вставка в СИ)
Извиняюсь, что, возможно, пишу не в ту тему. Нужен именно AT&T синтаксит. В качестве примера для...

Синтаксис запросов vs. синтаксис методов
Занимаюсь изучением LINQ'a, и возник вопрос, как переписать следующий запрос IEnumerable<int>...

Light Alloy
У Light Alloy нет изображения, черный экран. Кодеки установил, раньше помогали, а сейчас нет, как...

2
2 / 2 / 2
Регистрация: 03.06.2011
Сообщений: 49
07.07.2013, 15:12  [ТС] 2
Если в F# Interactive поставить дополнительный пробел в первой строчке кода ("let solve (a,b,c) ="), тогда получается числовой результат:
F#
1
2
3
4
5
>  let solve (a,b,c) =
   let D = b*b-4.*a*c
   ((-b+sqrt(D))/(2.*a),(-b-sqrt(D))/(2.*a));
solve (1.0,2.0,-3.0);;
val it : float * float = (1.0, -3.0)
Но как это написать правильно в .fs, чтобы при нажатии Alt-Enter происходило выполнение с числовым результатом я не понял.

Добавлено через 45 минут
Разобрался. Надо в .fs тоже поставить пробел в первой строчке и выделяет его тоже перед нажатием Alt-Enter.
F#
1
2
3
4
let solve (a,b,c) =
   let D = b*b-4.*a*c
   ((-b+sqrt(D))/(2.*a),(-b-sqrt(D))/(2.*a));
solve (1.0,2.0,-3.0);;
И еще вопрос: надо ли ставить точку с запятой в конце 3 строки? Результат один и тот же с и без точки c запятой.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
09.07.2013, 07:56 3
Пробел ставить не очень хорошо. То что результат не показывается это специфика работы F# 2.0. В 3.0 это пофиксили. Чтоб получить результат его надо куданить присвоить или распечатать
F#
1
2
3
4
let solve (a, b, c) =
   let D = b * b - 4. * a * c
   (-b + sqrt D) / (2. * a), (-b - sqrt D)/(2. * a)
printf "%A" <| solve (1.0, 2.0, -3.0)
или
F#
1
2
3
4
let solve (a, b, c) =
   let D = b * b - 4. * a * c
   (-b + sqrt D) / (2. * a), (-b - sqrt D)/(2. * a)
let a = solve (1.0, 2.0, -3.0)
иначе он игнорируется, что в принципе логично
Цитата Сообщение от Vezd Посмотреть сообщение
надо ли ставить точку с запятой в конце 3 строки?
не надо.

А вообще не советую по Сошникову учиться (будете писать как он ), лучше найдите нормальную англоязычную литературу.
0
09.07.2013, 07:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2013, 07:56
Помогаю со студенческими работами здесь

Faster Light
Подскажите куда засела эта программа Faster Light запустил кклеанер её нету. . как вообще её...

Shift-Light
Еще одна конструкция на авто тематику. Shift-Light. Кто не знает что это такое -...

Class Light
Здравствуйте, насчет света я понял в GLSL хотя и не совсем, меня интересует можно ли Создать класс...

Shift-light в тахометр
Всем доброго времени суток! Задался целью сделать шифт лампу в машину. Ее задача загораться в...


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

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