@haskellru

Страница 1343 из 1551
Yuriy
17.07.2018
10:39:28
потому и Nothing

Ilya
17.07.2018
10:39:39
Так внутри нафинга нет ничего

Aleksey
17.07.2018
10:40:00
Nothing означает "ничего", а элемент - вполне себе "чего"

Впрочем логика трактовки элементов может обрабатывать Nothing

Google
Ilya
17.07.2018
10:40:38
Но можно сделать функцию из Maybe в нужный тип

которая добавляет семантику как раз

Aleksey
17.07.2018
10:41:31
Ага. И в этой функции можно учесть уже и несколько допустимых умолчаний и прочее

Yuriy
17.07.2018
10:42:23
именно

shadowjack
17.07.2018
10:43:58
Yuriy
17.07.2018
10:44:28
я имел в виду использовать Maybe a там, где хотелось использовать a с пустым значением

dimiii
17.07.2018
10:45:26
Чем же так плохо? class Defaulted a where default :: a

shadowjack
17.07.2018
10:46:02
Не с пустым а с дефолтным (определение дефолтности мы не услышали)

Но вообще логично конечно, если дефолтный элемент может быть любым

Pineapple
17.07.2018
10:48:04
Определение дефолтности зависит от типа

Yuriy
17.07.2018
10:48:38
Default из библиотеки не привязан к задаче, потому не очень осмысленный

Google
Yuriy
17.07.2018
10:49:04
если определить в своей программе свой Default, то в принципе ок

и задокументировать семантику, конечно

shadowjack
17.07.2018
10:50:09
Default из библиотеки не привязан к задаче, потому не очень осмысленный
Тогда более специфичного класса чем Defaulted/Default быть не может

Pineapple
17.07.2018
10:51:21
Я, впрочем, считаю, что хейтерство Default слишком сильно. Если у типа есть есдинственное и осмысленное значение по умолчанию, то им вполне можно пользоваться

shadowjack
17.07.2018
10:51:31
Определение дефолтности зависит от типа
Точнее это хотел процитировать

Кстати тогда логично Monoid сделать подклассом Default

С определением emepty=def

Index
17.07.2018
10:55:36
Дефолтность всегда относительно операции, не может у типа быть дефолтного значения

Aleksey
17.07.2018
10:55:47
Index
17.07.2018
10:56:13
Тем временем предлагаю попробовать поддержку дефолтных параметров в https://hackage.haskell.org/package/named

shadowjack
17.07.2018
10:56:28
Дефолтность всегда относительно операции, не может у типа быть дефолтного значения
Нет, нулевость относительно операции, а дефолтность может быть любой "специальный" элемент

Index
17.07.2018
10:56:42
Так по какому принципу ты его выберешь?

shadowjack
17.07.2018
10:57:21
Произвольно. Но некоторый выбор более полезен чем другие

Index
17.07.2018
10:57:51
Чтобы этот выбор имел смысл, произвольность должна быть однородна между всеми типами

То есть принцип какой-то все равно нужен

shadowjack
17.07.2018
10:58:22
Например для FilePath это может быть "." или "/"

dimiii
17.07.2018
10:58:28
14, 18, 21(возраст) - примеры дефолтных значений

Index
17.07.2018
10:58:33
Так "." или "/"?

Dmitry
17.07.2018
10:58:45
надо вклчить эту тему в число взрывоопасных

наряду с легалайзом, собаками и некоторыми другими

Google
shadowjack
17.07.2018
10:59:12
RelativeFilePath "." AbsoluteFilePath "/"

Ilya
17.07.2018
11:00:27
надо вклчить эту тему в число взрывоопасных
Это вопрос Шредингера. При попытке задать его достаточно строго, он исчезает

Index
17.07.2018
11:01:05
RelativeFilePath "." AbsoluteFilePath "/"
А вот для просто FilePath как? Я так хитрить тоже умею. Для Integer не определяем, а для Sum Integer пусть 0, для Product Integer пусть 1

Где-то у тебя там операции в голове рыскают, ты их просто назвать не можешь

Index
17.07.2018
11:02:02
Ну допустим сделали, не про String же речь, а то б уже давно вариант "" прозвучал

Ilya
17.07.2018
11:02:42
Для всех типов

Index
17.07.2018
11:02:52
Я могу вот заметить, что "." для relative и "/" для absolute выполняют свойство def </> path = path

то есть операция явно </>

shadowjack
17.07.2018
11:03:27
kana
17.07.2018
11:03:36
неужели выше не было ясно указано, что нейтральный элемент не имеет к типу отношения, это свойство операции и только операции

то есть дефолтный элемент и нейтральный из моноида - вообще разные вещи

Index
17.07.2018
11:04:50
так дефолтный ты сказал произвольно выбирать, а в моноиде нейтральный

kana
17.07.2018
11:04:56
ну вот я про это и говорю же, тогда в чем твой смысл сделать Monoid <= Default, если у моноида именно НЕЙТРАЛЬНЫЙ, а у дефолта ДЕФОЛТНЫЙ

Index
17.07.2018
11:04:59
поэтому Default m => Monoid m вообще 0 смысла имеет

shadowjack
17.07.2018
11:05:05
Index
17.07.2018
11:05:07
даже если допустить этот дурной Default

Google
Index
17.07.2018
11:05:12
который вообще вырезать надо

kana
17.07.2018
11:05:17
shadowjack
17.07.2018
11:05:19
Назови его не дефолтным а специальным

kana
17.07.2018
11:05:30
с точки зрения математики ты вообще не опишешь дефолт

максимальная нижняя граница на предпорядке? А если нет предполярка

Index
17.07.2018
11:06:08
shadowjack: Нейтральный != дефолтный shadowjack, 1 minute later: С точки зрения математики одно и то же

shadowjack
17.07.2018
11:06:33
с точки зрения математики ты вообще не опишешь дефолт
Существует элемент default принадлежащий множеству Set. Всё.

kana
17.07.2018
11:06:40
с точки зрения матемтики нет ничего плохого иметь множество опредений моноидов, это просто разные кортежи

поэтому и default там никак не связан с моноидом

Ilya
17.07.2018
11:07:42
Пардоньте, а какое дефолтное значение у функции? Для a -> a, и для a - > b

Admin
ERROR: S client not available

Index
17.07.2018
11:07:51
Существует элемент default принадлежащий множеству Set. Всё.
множеству Set принадлежат другие множества

(ниже по иерархии)

то есть если ты утверждаешь, что default это множество, то какие в нем тогда элементы?

Index
17.07.2018
11:09:33
Ы??

Ilya
17.07.2018
11:09:55
Set это что за конструкция?

shadowjack
17.07.2018
11:10:11
Это имя

Пусть будет не Set а S

Ы??
Ты принадлежит и является подмножеством не путаешь?

Google
Index
17.07.2018
11:11:19
Нет, я называю множеством Set элементы (объекты) категории Set

есть множество натуральных чисел, целых чисел, есть Set, и т.д.

в Agda так тип типов назван

shadowjack
17.07.2018
11:12:35
При чем тут Agda? Мы про математическую нотацию. Мне юникодом написать?

Index
17.07.2018
11:12:37
ну если пришел к хаскелистам, изволь называть переменные с маленькой буквы, потому что я действительно не так понял твою идею

твое утверждение "в любом множестве s есть дефолтный элемент a ∈ s" ну во-первых это неверно для пустого множества

Во-вторых весь разговор про то, как ты выбираешь этот элемент. Ты говоришь "произвольно, по полезности", тебе говорят, что полезность определяется операциями, которые ты используешь. Например, числа ты складываешь, поэтому 0 полезно. Еще умножаешь, поэтому 1 полезно. Файловые пути конкатенируешь, поэтому "." и "/" полезно.

Без операций вообще само множество бесполезным становится.

Так что ты всегда дефолтный элемент будешь выбирать по операции.

Ilya
17.07.2018
11:16:14
Нет, я называю множеством Set элементы (объекты) категории Set
Лучше не назвать это множеством, сам знаешь

Index
17.07.2018
11:16:30
ну класс, множество

Ilya
17.07.2018
11:16:36
Класс да

Index
17.07.2018
11:16:42
класс это множество_1

не знаю что там после классов у математиков, у агдистов множество_2

(то есть что там у математиков классы содержит)

Евгений
17.07.2018
11:17:46
класс это множество_1
Класс это не множество

Index
17.07.2018
11:18:19
Евгений
17.07.2018
11:18:49
Потому что на них нету принадлежности

Ilya
17.07.2018
11:19:18
Вот чтобы хоть немного осмыслить разговор, в хаскеле в качестве дефолтного элемента можно было бы выбирать первое дерево АТД. Правда этот элемент будет бесполезен, но всё же такой выбор можно сделать для всех АТД, то есть для всех в хаскеле, кроме функций

Например для списка это будет либо [] либо def:def:def:def...

Index
17.07.2018
11:19:47


Страница 1343 из 1551