Size: a a a

2021 January 18

AT

Anton Ternavsky in F# Chat
Vladimir Shchur
нет) это в сишорпе валью тупл
Да, из коробки. Посмотрю сейчас, какие приседания нужный чтобы ValueTuple заюзать
источник

R

Roman in F# Chat
Anton Ternavsky
Мне достаточно, чтобы в рамках одного модуля не скрывались имена, ну и спецификация через пространства имен и модули поможет
ага, короче никак. Ты решил свою задачу вместо оригинальной
источник

AT

Anton Ternavsky in F# Chat
Roman
ага, короче никак. Ты решил свою задачу вместо оригинальной
Нет в жизни идеала :) ну и мне такое поведение кажется хотя бы предсказуемым, т.к. при попытке заюзать два разных типа из разных модулей компилер уже ругаться будет хотя бы, т.к. не поймет-а что от него хотят
источник

AT

Anton Ternavsky in F# Chat
ну либо если деконструкт есть явный в DU то уже сам сообразит
источник

R

Roman in F# Chat
Anton Ternavsky
Нет в жизни идеала :) ну и мне такое поведение кажется хотя бы предсказуемым, т.к. при попытке заюзать два разных типа из разных модулей компилер уже ругаться будет хотя бы, т.к. не поймет-а что от него хотят
module A =
   type First = One | Two
module B =
   type Second = One | Three
module Privet =
  open A
  open B
  let a = One

ниче не ломается, никаких ворнингов, валидный код, который зависит от порядка open A/B.
источник

VS

Vasily Shapenko in F# Chat
Лучше, конечно,  RequireQualifiedAccess
источник

R

Roman in F# Chat
Чтоб избежать таких коллизий и предлагают использовать RequireQualifiedAccess
источник

AT

Anton Ternavsky in F# Chat
Vladimir Shchur
XCoordinate*YCoordinate это Tuple<> дотнетовский, который референс тайп
источник

VS

Vladimir Shchur in F# Chat
+
источник

VS

Vasily Shapenko in F# Chat
Иначе  type interference  выведет не то
источник

AT

Anton Ternavsky in F# Chat
Почему только по дефолту не втыкать ValueType вопрос.
источник

AT

Anton Ternavsky in F# Chat
типа боятся через стек тягать ?
источник

AT

Anton Ternavsky in F# Chat
Мало ли что пхнут
источник

VS

Vladimir Shchur in F# Chat
Anton Ternavsky
Почему только по дефолту не втыкать ValueType вопрос.
на это могу предложить скачать пдф История Фшарпа от Сайма)
источник

AT

Anton Ternavsky in F# Chat
Roman
module A =
   type First = One | Two
module B =
   type Second = One | Three
module Privet =
  open A
  open B
  let a = One

ниче не ломается, никаких ворнингов, валидный код, который зависит от порядка open A/B.
А мне вот как раз не нужен код, который зависит от порядка open A/B. мне нужен инвариантный код, которому на этот порядок положить
источник

AT

Anton Ternavsky in F# Chat
Ну короче в стартовом посте все было+ у меня ситуация другая, мне полноценный многосоставной DU не нужен
источник

R

Roman in F# Chat
я очень рад, но мне удобней, читая код, написанный не мной/мной давным давно, сразу понимать, какой тип используется, а не идти и пылесосить порядок опенов и все соответствующие модули
источник

AT

Anton Ternavsky in F# Chat
Дык выше пример был, все зависимости прямо по месту
источник

AT

Anton Ternavsky in F# Chat
Anton Ternavsky
Почувствуй себя лиспером
this
источник

AT

Anton Ternavsky in F# Chat
Roman
я очень рад, но мне удобней, читая код, написанный не мной/мной давным давно, сразу понимать, какой тип используется, а не идти и пылесосить порядок опенов и все соответствующие модули
Ну и обсуждение не о том. Тут вопрос выбора UMX/DU в сокращенном виде с одним элементом или Record для таких вот лаконичных типов.
источник