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

Мне нужно пару десятков значений (целочисленных констант и строк, основном)

иметь на тайп-левеле и на терм-левеле. Первое нужно для Options.Generic для описания дефолтных значений CLI параметров, а второе — чтобы инстанцировать эти дефолтные значения. И помимо того, мне нужен тайп-левел аналог show, чтобы дефолты в описания добавлять. Есть какие-нибудь хорошие примеры/библиотеки? Городить самому всякие страшные тайпфемили не особо хочется, вдруг кто-то уже сделал. Или там через type-level Map какой-нибудь, не знаю.

4 ответов

14 просмотров

singletons слишком сложно?

Вариант "в лоб" с тайпклассом не? Инстансы придётся руками (можно TH, но если их пара десятков проще руками)

Misha-Puzanov Автор вопроса
Lierdakil
Вариант "в лоб" с тайпклассом не? Инстансы придётс...

мне по большому нужно иметь один источник для кода типа config = Config { portNumber = 8080 -- еще 20 таких и для кода типа data CLIOptions wrapped = CLIOptions { portNumber :: wrapped ::: Maybe Int <?> "Port number (default is 8080)." -- еще 20 таких .... во втором случае 8080 — это Symbol, это синтакис из Options.Generic. То есть я могу спокойно обойтись и без генерализации этого дела, и смысл городить огород есть, только если это будет реально короче и изящнее. Пока что мой небольшой опыт с хаскельным тайплевелом говорит мне, что ни "короче" ни "изящнее" тут не получится, но вдруг есть какие-то красивые варианты.

Misha Puzanov
мне по большому нужно иметь один источник для кода...

В Options.Generic есть тайп оператор <!> который аннотирует тип дефолтным значением (в виде Symbol). Symbol можно спустить на уровень значений с помощью symbolVal. Строку можно прочитать. Кажется достичь нужного результата можно, но дефолты все в виде Symbol и типобезопасность сомнительная

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта