Alexander
интересная форма рекламы
Anonymous
t.me/folderarchive — канал, где бесплатно сливают платные полезные курсы и материалы.
Andrew
Andrew
Cheese
заходит @Foo в бар...
Vasiliy
я так понимаю, потому что тип второго аргумента должна определять сама функция wtf, а в случае с const тип аргумента определяет тот, кто её вызывает
Alexander
это только в ghci?
Alexander
или если компилять то тоже?
Andrew
Andrew
Dmitrii
или если компилять то тоже?
Такой код компилируется вполне ок. И если вызвать в ghci foo, то выведет 1
{-# LANGUAGE RankNTypes #-}
wtf :: a -> (Num b => b) -> a
wtf x _ = x
foo :: Int
foo = wtf 1 ("wat" + "man")
Andrew
Все дошло до меня)
Aleksei (astynax)
+ тут, это не сложение списков, а чего угодно, реализующего Num. И "строки" тут не списки (не обязательно), т.к. OverloadedStrings повзоляетт записать в виде строкового литерала всё, что угодно, лишь бы это что-то умело IsString (да, капитанствую).
Отсюда "foo" + "bar", это нечто, умеющее IsString и Num
Denis
Пардон за оффтопик, а как вы тут код форматируете? Бот какой работает?
Andrew
Aleksei (astynax)
Vasiliy
Крылатый
Либо в три `
Крылатый
`
Крылатый
Хм.
Vasiliy
да, я тоже три написал :D
Крылатый
Я хотел три обернуть в шесть, не вышло
Крылатый
`
Крылатый
Даже с пробелами съедает.
Denis
хмм, я попробовал *zzz* - не заработало, и забил на markdown
Крылатый
Как ты это сделал?
Крылатый
`
Vasiliy
_подчёркивания_ вроде должны работать
Крылатый
Крылатый
zzz
Крылатый
подчёркивания тоже двойные
Aleksei (astynax)
двойные, да. Так что это Telegram flavoured not-so-Markdown
Vasiliy
ага, спасибо за информацию
Cheese
* = тип
[*] = список типов
Cheese
ой, вопрос пропал
Denis
да я удалил, ибо пока писал, понял, какой бред написал
Cheese
вместо * лучше писать Type (http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Kind.html#t:Type), будет проще
Denis
я там запутался немного, и привидилось, что в одном месте тип описан типа как * -> * -> *, а в другом он же как * -> *
Denis
хмм, занятно: type * = * A backward-compatible (pre-GHC 8.0) synonym for Type
Alexander
Alexander
чего сразу мардавном звать
Cheese
сам Телеграм называет это маркдауном
Alexander
ok
Евгений
Чо наконец-таки ВПИЛИЛИ разметку?
Евгений
Раньше только code работал
Alexander
_разве_ ?
Aleksei (astynax)
впилили курсив и жир только. Никаких таблиц и прочего. Ссылки с кастомным текстом тоже не вставишь
Aleksei (astynax)
__разве__
надо
Donat
> Ссылки с кастомным текстом тоже не вставишь
и слава б-гу!
Aleksei (astynax)
Вставляют же. Но через bot API
Aleksei (astynax)
Когда ведешь канальчик, то хочется встявлять "красивые ссылки", тем более, что техническая возможность есть. Но именно через интерфейс клиента этого сделать нельзя.
Aleksei (astynax)
Запретили бы в обычных комментах, а в "постах" то можно!
Donat
Aleksei (astynax)
Хмм. И правда, в недавних постах что-то не могу найти. Разве что тут: https://t.me/beardycast/2777 - я про ссылку в подвале
Cheese
кажется, был системный маркдаунбот, но куда-то делся
Cheese
а ботам можно пользоваться настоящими маркдауном и хтмлем https://core.telegram.org/bots/api#markdown-style
Alexander
TFW ты не бот
Alex
я смотрю вы не успокоитесь пока вам весь tex в разметку не всобачат :)
Alexander
+
Alexander
как без теха то?
Крылатый
Да.
Крылатый
ТеХ было бы очень хорошо.
Alexander
с другой стороны он и так читаемый
Cheese
Oleg
Alex
ТЕлеХрам
Крылатый
Храм по телевизору?
Крылатый
Надеюсь, церкви Омниссии?
Зигохистоморфный
как сделать параметрически?
data Notification = Error String | Info a deriving Show
Зигохистоморфный
Info a
Vasiliy
Зигохистоморфный
сделал GADTs
data Notification where
Error :: String -> Notification
Info :: forall a. a -> Notification
Oleg
Зигохистоморфный
вот я и думаю
Зигохистоморфный
вот мне надр теперь Info String
Зигохистоморфный
как быть?
Зигохистоморфный
а в другом месте у меня Info MyData