// identical — 'double' is a synonym for 'float'
и ещё не стоит так писать "synonym", синонимы — это например Single и float
возможно, лучше так:
// casting to 'double' is identical to 'float' casting
хотя непонятно
let pi2 = double 3 + 0.1415
ведь в этом примере компилятор выводит типы из использования и приведение не нужно.
«История жизни – это, по существу, развитие сознания, которое завуалировано морфологией.» Пьер Тейяр де Шарден
Здравствуйте, Denom, Вы писали:
D>Здравствуйте, CodingUnit, Вы писали:
CU>>Sample pack начинает наполняться здесь:
D>Откуда берётся список фич для которых делаются примеры?
Пока копируем просто http://fsharp3sample.codeplex.com/
пока делаем почти один в один, с разными улучшениями Н, что понадобится сделать чтобы представить все примеры, из за отсутствия соответствующих фич в Н, неизвестно.
Здравствуйте, Rival, Вы писали:
R>Здравствуйте, CodingUnit, Вы писали:
R>// identical — 'double' is a synonym for 'float' R>и ещё не стоит так писать "synonym", синонимы — это например Single и float R>возможно, лучше так: R>// casting to 'double' is identical to 'float' casting
Я согласен что 'синоним' не совсем хорошо отражает суть, но так было в оригинале, что имели в виду авторы я не знаю, люди лучше знаюшие фшарп может скажут в чем тут дело.
R>хотя непонятно R>let pi2 = double 3 + 0.1415 R>ведь в этом примере компилятор выводит типы из использования и приведение не нужно.
Это наверное чтобы показать явно тип выражения. Вообщем если нужно можно сделать по другому, самое главное чтобы в этом был смысл.
Здравствуйте, CodingUnit, Вы писали:
CU>Да возможно, оригинальный пример выглядел так: CU> let pi1 = float 3 + 0.1415 // 'float' is an overloaded conversion operator CU> let pi2 = double 3 + 0.1415 // identical — 'double' is a synonym for 'float'
В F# float и double, похоже и правда, синонимы. В Немерле — нет. Так что комментарий уже некорректен.
Аналог приведенному коду будет таким:
def pi1 = 3 + 0.1415f; // pi1 has type float. 3 automatically converted to float. def pi2 = 3 + 0.1415; // pi1 has type double. 3 automatically converted to double.
более близкий, но бессмысленный, вариант:
def pi1 = 3 : float + 0.1415f; // pi1 has type float.def pi2 = 3 : double + 0.1415; // pi1 has type double.
Еще будет полезен пример:
def pi1 = 3.1f + 0.1415; // pi1 has type double.
Что демонстрирует автоматическое приведение типов от float к double.
Так же стоит заметить в коменте, что float не эквивалентен double.
CU>наверное надо переписать так: CU>def pi1 = (3 + 0.1415) :> float;
Нет. Тут будет вставлено рантаймное приведение типов. И этот пример вообще не эквивалентен F#-овскому.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Rival, Вы писали:
R>// identical — 'double' is a synonym for 'float' R>и ещё не стоит так писать "synonym", синонимы — это например Single и float R>возможно, лучше так: R>// casting to 'double' is identical to 'float' casting R>хотя непонятно R>let pi2 = double 3 + 0.1415 R>ведь в этом примере компилятор выводит типы из использования и приведение не нужно.
В F# float действительно синоним к double. А то что в Си-подобных языках называют float-ом, у них называется sign. И пример:
let pi1 = sign 3 + 0.1415
у них не скомпилируется.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, CodingUnit, Вы писали:
CU>Я согласен что 'синоним' не совсем хорошо отражает суть, но так было в оригинале, что имели в виду авторы я не знаю, люди лучше знаюшие фшарп может скажут в чем тут дело.
То и имели. В F# это правда синонимы. А float у них называется single.
R>>хотя непонятно R>>let pi2 = double 3 + 0.1415 R>>ведь в этом примере компилятор выводит типы из использования и приведение не нужно.
CU>Это наверное чтобы показать явно тип выражения. Вообщем если нужно можно сделать по другому, самое главное чтобы в этом был смысл.
В F# вообще нет неявных приведений типов. У них вывод типов на это не рассчитан. От того и все пляски с бубном.
Но это еще что?... В OCaml-е нет даже перегрузки операторов. Там для целочисленного сложения используются операторы отличные от операторов сложения вещественных чисел.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Наткнулся тут на F# 3.0 Sample Pack. Идея мне понравилась.
VD>Может кто-то займется клонированием этого набора примеров на немерде. Думаю это будет очень полезно.
VD>Оформить это дело можно прямо в вики на гитхабе. А код хранить в сниппетах.
Сэмплпак наполняется, но у меня не очень хорошее ощущение что мы делаем это не совсем легально, эти материалы так просто утаскивать и использовать помоему нельзя, может стоить написать соответствующие копирайты и в названиях дать, что используется на основе материалов F# 3.0 Sample pack?
CU>Сэмплпак наполняется, но у меня не очень хорошее ощущение что мы делаем это не совсем легально, эти материалы так просто утаскивать и использовать помоему нельзя, может стоить написать соответствующие копирайты и в названиях дать, что используется на основе материалов F# 3.0 Sample pack?
Сам же отвечу на свой вопрос, набросал Terms of Use с копирайтами, если есть спецы, посмотрите правильно ли я это сделал?