169 похожих чатов

Ещё вопрос по F#. В реальных проектах принято указывать возвращаемые и

принимаемые типы функцией или всё «по-наследству»?)

21 ответов

50 просмотров

Вывод типов по Хиндли-Милнеру дает возможность не обмазывать код простынками из деклараций типов, это та одна из уберфич ML семейства языков, почему я обожаю пилить код на фарше

👽
Вывод типов по Хиндли-Милнеру дает возможность не ...

Не пали тему) пусть сишарперы страдают)))

Ivan-Pavlov Автор вопроса
👽
Вывод типов по Хиндли-Милнеру дает возможность не ...

А как ревьюить такой код без ИДЕшки? Ведь вообще не понятно с чем оно работает.

По-разному. Некоторые везде аннотируют, некоторые только публичные функции и методы, некоторые и без этого обходятся.

Ivan Pavlov
А как ревьюить такой код без ИДЕшки? Ведь вообще н...

Дык статический вывод типов, компилятор рога отшибет при ошибке. А типы реально не нужны в декларациях-нужно сосредоточиться на том, ЧТО происходит, а не поверх чего :)

я паблик апи таки обмазываю чтобы не заинфирилось ненужное

Ayrat Hudaygulov
я паблик апи таки обмазываю чтобы не заинфирилось ...

При подходе-функции работы с типом расположены ТОЛЬКО в том же модуле, что и сам тип-сильно уменьшает вероятность упороться. Сам тип в таком случае может только гулять по стеку вызовов и все :))

Ivan Pavlov
Функции без классов?

Я почти всегда леплю на рекордах+функциях вокруг них в том же модуле. За исключением публичных АПИ своего движка-там интерфейсы торчат :) Т.к. когда нибудь может он станет публичным и не хочу шокировать публику F# way API 😂

Ivan-Pavlov Автор вопроса
Ivan Pavlov
А что вы создаёте, если не секрет?

Поищи по ECS, воксель-были посты

Ivan Pavlov
А как ревьюить такой код без ИДЕшки? Ведь вообще н...

если твой код непонятен без аннотаций типов, то это в большинстве случаев плохой код

V S
если твой код непонятен без аннотаций типов, то эт...

В точку. И даже необходимость втыкать явно inref/byref говорит о том, что код плохой, но иначе никак(ибо перформанс)

👽
В точку. И даже необходимость втыкать явно inref/b...

Хватит блин вручную код для компилятора писать:) Определи базовые операции которые ты со своей ecs ’кой выполняешь, попытайся привести к общему типу дженерик делегата который позволяет описать такие взаимодействия, определи несколько комбинаторов которыми их можно чейнить/объединять, а более хайлевел части уже этой dsl описывай:) по всем моими прикидкам ты должен уже давненько не иметь дела с байрефами лично:)

👽
В точку. И даже необходимость втыкать явно inref/b...

Inref/byref?!!! 🤦 у нас например обычная payment система, ну там транзакции денежные и т.д. Среднее время одной транзакции 60ms.

Ilya
Хватит блин вручную код для компилятора писать:) ...

ХМ не выводит byref из контекста использования. Компилятор будет пинать тебя за то, что ты пытаешься его нагреть. Максимум он в override может за тебя сориентироваться, и то на некоторых хитрых ошибках он снова начинает тупить.

Ilya
Хватит блин вручную код для компилятора писать:) ...

А где-то есть открытый источник, из которого ты эту идею взял?

Ilya
Хватит блин вручную код для компилятора писать:) ...

Так это в потрохах ядра ECS всякая перформансная дичь творится, на внешней стороне API все благообразно(типа семпл): [<Sealed>] type private Iterate(_isParallel: bool, _world: IWorld, _settings: IEcsSettings) = interface ISystem<Component1, Component2, Component3> with member this.Description = "Sample three components" member this.IsParallel = _isParallel member this.IsOn = true member this.Filter = Filter.empty() [<MethodImpl(MethodImplOptions.AggressiveInlining)>] member this.Do(_, c1, c2, c3) = c1.Value1 <- c1.Value1 + c2.Value2 + c3.Value3

Oleksandr Maistrenko
Inref/byref?!!! 🤦 у нас например обычная payment ...

Я с обычными "системами" много лет предпочитаю не встречаться, мне надо превзмогание в разработке, так интереснее 😂

Klei
ХМ не выводит byref из контекста использования. Ко...

Верно, в декларациях никак не провихлять для inref/byref-приходится явно писать, чтобы ХМ рога не отшибал

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта