Влод
можно с телефона писать (огромный плюс)
Dmitry
сдаюсь, пожалуй.
Dmitry
а для си или си плюс плюс или джавы нужен такой бот?
Dmitry
ну, просто интересно
Serhii
Ну ээ, можна просто POST на http://tryhaskell.org/eval. Чего тут сложного?
Serhii
Я от сейчас учу haskell, мне бы было удобно eval c ipad
Влод
что значит запускаю, я его и не закрываю никогда
думаю многие как и я просто проходят мимо хаскеля, а не работают на нём каждый день
Serhii
Просто думал может кто то написал уже
Нурлан
тема ботом классная
Serhii
Dmitry
ну черт его знает, я даже текст слов на человеческом языке писать с телефона не очень готов, все пальцы сломаешь или вообще убьешься, потому что за рулем
Влод
https://ghc.io/
а что там? там есть апи? у меня не открываются about и help
Dmitry
да черт знает, первое что нашел
Serhii
а что там? там есть апи? у меня не открываются about и help
Я скинул же апи — post http://tryhaskell.org/eval з exp
Dmitry
вон, еще
Dmitry
да
Влод
ок, выглядит норм
Serhii
ладно, я напишу
Влод
да действительно с телефона сверхнеудобно набирать разные квадртные скобки, стрелки.
Artem
@rextester_bot
Serhii
есть еще @tryhaskell, но он не работает
Влод
Language: haskell Source: main = print "hi" Result: "hi"
Artem
Его админы могут добавить прямо в группу, если что
Влод
ну то что надо. только main напрягает
Artem
Но спамоопасно, конечно
Влод
зачем.
Artem
Да, main печаль
Serhii
что-от он завис
Serhii
Language: haskell Source: main = foldl (+) 0 [1..10] Errors: source_file.hs:1:14: No instance for (Num (IO t0)) arising from a use of ‘+’ In the first argument of ‘foldl’, namely ‘(+)’ In the expression: foldl (+) 0 [1 .. 10] In an equation for ‘main’: main = foldl (+) 0 [1 .. 10] source_file.hs:1:20: No instance for (Enum (IO t0)) arising from the arithmetic sequence ‘1 .. 10’ In the third argument of ‘foldl’, namely ‘[1 .. 10]’ In the expression: foldl (+) 0 [1 .. 10] In an equation for ‘main’: main = foldl (+) 0 [1 .. 10]
Serhii
и кривой
Влод
Language: haskell Source: main = print $ foldl (+) 0 [1..10] Result: 55
Serhii
а, точно. ну это совсем не удобно
Влод
ты IO забыл. ну как бы хотелось чтобы у него ещё ghci был
Serhii
если это eval-бот
Влод
он ещё умеет файлы принимать, что тоже как-то не в тему. вот если я файл написал, то тут мне точно не лень runhaskell написать
Serghei
Влод
https://hackage.haskell.org/package/telegram-api
Serghei
а есть hoogle для ghci ? чтоб получить ответ прямо в ghci
Влод
ну я у себя настроил когда то. причём он лучше того основного хугла
Влод
:def hoogle \x -> return $ ":!hoogle \"" ++ x ++ "\"" :def doc \x -> return $ ":!hoogle --info \"" ++ x ++ "\""
Влод
ну и stack install hoogle
Serghei
я еще вообще ничкго не настраивал, это мне что-то типа ~/.stackrc надо иметь?
Serghei
хорошая идея в общем, поковырять stack :) вчера у меня была "суббота хаскела", а сегодня напрашивается "вечер стека" 🙂
Влод
аа забыл про это написать. ну вообще у меня это написано в ~/.ghci (и больше ничего, хотя наверное стоит туда -XOverloadedStrings написать) не знаю стоит ли это на уровне стека прописывать.
Влод
ну и пользоваться :hoogle [a] -> a doc тоже полезная штука
Serhii
О, спасибо
andrei
правда он медленный и на JS. Ну и запрос на tryhaskell это как-то не трушно)
Влод
Prelude> :t 1 <hint>:1:1: parse error on input ‘:’
andrei
ну так это tryhaskell.org
andrei
если кто напишет бота нормального могу отдать ник)
Влод
ну просто из-за`Prelude>` подумал, что ghci будет
Влод
а для каждого пользователя отдельная сессия?
Влод
ну и ещё мб исходник есть
andrei
не, там просто запрос на tryhaskell.org/eval
Влод
ну попытаюсь угадать: делал без вебхуков, просто по таймеру отправяешь запрос, для каждого полученного пользовательского запроса отправляешь блокирующий запрос на tryhaskell.org/eval ? всё в одном потоке?
andrei
не блокирующий) там rxjs
Serghei
Есть сумма, и есть номиналы монет. Нужно выдеть сколькими способами можно эту сумму выдать этими номиналами. Например, если у нас есть сумма 4, и номиналы 1 и 2, то это 3 способа: 1+1+1+1, 1+1+2, 2+2 (т.е. варианты типа 1+2 и 2+1 считаются одним вариантом) Номиналов может быть любое кол-во. На вход в функцию подается число и список номиналов. Говорят это олимпиадная задачка
Anatolii
Помойму такая задачка была на курсах степика по хаскелю
Влод
ну да. на timus наверное одна из первых в динамическом программировании
Serghei
на стпике не знаю не видел
Serghei
скиньте ссылку на степик
Влод
http://aliev.me/runestone/Recursion/DynamicProgramming.html что-то похожее, на timus не нашёл
Serghei
спасибо
Максим
скиньте ссылку на степик
https://stepik.org/lesson/Генераторы-списков-8328/step/9?unit=1476
Влод
короче по-хорошему лучше с ДП разобраться если не разбирался. но есть один лайфхак если ты не собираешься решать олимпиадные задачи (например у меня было задание перед собеседованием): решаешь задачу рекурсивно в лоб, перебираешь все номиналы и и для каждого спускаешься вниз отнимая значение номинала. дальше у тебя получается норм результат, но для больших значений твоя функция работает вечность и делаешь как тут https://wiki.haskell.org/Memoization
Nikita
guys
Nikita
ой извиняюсь
Nikita
тут на русском
Nikita
я тут проект выложил один
Nikita
https://github.com/nikitavoloboev/research
Dmitry
капец. почему нельзя просто зайти и послушать лекцию?!
Nikita
интересно мнения услушать
Nikita
идея в том что я все записки публикую
Nikita
в форме майнд мапов
Nikita
под одним большим майнд мапом
Nikita
там haskell тоже есть :)
Nikita
только немного пока