
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (8) « Первая ... 3 4 [5] 6 7 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Цитата korvin @ Кинь ка мне ссылочку на изначальное определение задачи. задача изначально была одна: определить тип (int > 0) средствами статической типизации. если ты ее как-то не так понял, не зачем возмущаться =) Добавлено Может я чего упустил. |
![]() |
Сообщ.
#62
,
|
|
как это нет? integer -- один тип, natural -- другой. у них есть определенные различия Добавлено Цитата Повстанець @ Кинь ка мне ссылочку на изначальное определение задачи. Может я чего упустил. вот основной вопрос: Java vs Kotlin (сообщение #2941949) в качестве примера я выбрал определение типа (int > 0) |
Сообщ.
#63
,
|
|
|
Явно не для того, чтобы ветвления устраивать, ага. |
Сообщ.
#64
,
|
|
|
Цитата korvin @ Что выбрал, то и получил. Хотел в статике -- получил в статике. в качестве примера я выбрал определение типа (int > 0) |
![]() |
Сообщ.
#65
,
|
|
Цитата MyNameIsIgor @ Явно не для того, чтобы ветвления устраивать, ага. какие ветвления? о чем ты? я всего лишь хочу тип natural |
Сообщ.
#66
,
|
|
|
Цитата korvin @ Покажешь пример с динамической типизацией, позволяющий объявить такой тип?задача изначально была одна: определить тип (int > 0) средствами статической типизации Просто в статике это можно реализовать через пользовательский тип с проверкой значений во время выполнения. Другого способа нет. Ни в статике, ни в динамике. Поэтому такие типы и не применяются. |
![]() |
Сообщ.
#67
,
|
|
Цитата Повстанець @ Что выбрал, то и получил. Хотел в статике -- получил в статике. нет, не получил |
Сообщ.
#68
,
|
|
|
Цитата korvin @ Да ну... Статика? Статика... Всё что меньше нуля отбрасывает? Отбрасывает. нет, не получил ![]() Все дальнейшие условия появились после решения этой задачи. |
![]() |
Сообщ.
#69
,
|
|
Цитата amk @ Покажешь пример с динамической типизацией, позволяющий объявить такой тип? я уже показывал: ![]() ![]() (define (natural? x) (and (integer? x) (positive? x))) ; или используя контракт and/c: (define natural? (and/c integer? positive?)) все Цитата amk @ Просто в статике это можно реализовать через пользовательский тип с проверкой значений во время выполнения. Другого способа нет. Ни в статике, ни в динамике. Поэтому такие типы и не применяются. я знаю, проверка в конструкторе. только в динамике и так все в динамике, поэтому противоречий с системой типов не происходит. и таки в динамике применяются. Добавлено Цитата Повстанець @ Да ну... Статика? Статика... Всё что меньше нуля отбрасывает? Отбрасывает. ![]() пример с переменными, а не константами, будет? или вы всю программу в константах пишете? |
Сообщ.
#70
,
|
|
|
Цитата korvin @ Ты не просил переменных и рантайм. Ты просил статику и этап компиляции. пример с переменными, а не константами, будет? |
Сообщ.
#71
,
|
|
|
korvin, вам бы научиться изъясняться... Желательно по-русски...
Цитата korvin @ я знаю, проверка в конструкторе. Жаждите увидеть такое? Тогда к чему вопросы, если понятно, что это реализуемо? |
![]() |
Сообщ.
#72
,
|
|
Нифига не понял.
![]() ![]() template <bool> Bool2Type{}; template <typename T> T f(T t, Bool2Type<false>); template <typename T> T f(T t, Bool2Type<true>); template <typename T> T f(T t) { return f(t, Bool2Type<std::numeric_limits<T>::is_signed>()); } |
![]() |
Сообщ.
#73
,
|
|
Цитата Повстанець @ Ты не просил переменных и рантайм. Ты просил статику и этап компиляции. угу, статику с переменными, или что, статическая типизация этого не позволяет? константы я и в CL/Racket могу в compile-time проверять. Добавлено нет, такой ад не жажду увидеть Добавлено Цитата Qraizer @ Нифига не понял. ![]() ![]() template <bool> Bool2Type{}; template <typename T> T f(T t, Bool2Type<false>); template <typename T> T f(T t, Bool2Type<true>); template <typename T> T f(T t) { return f(t, Bool2Type<std::numeric_limits<T>::is_signed>()); } аналогично |
Сообщ.
#74
,
|
|
|
Цитата korvin @ нет, такой ад не жажду увидеть Жалкий ниасилятор ![]() |
Сообщ.
#75
,
|
|
|
Цитата MyNameIsIgor @ Цитата (korvin @ Вчера, 19:46) нет, такой ад не жажду увидеть Жалкий ниасилятор Пример был реально аццкий)) Недетерминированный тип простым фабричным методом... оригинально. А если условие чуть усложниться? Надо будет, скажем, отдельный тип для простых чисел. На что unsigned заменишь, чтобы контроль не потерять? В этом плане пример korvin'а, конечно, рафинирован гораздо лучше. |