
Denis
11.10.2017
21:33:22
Хуже жс
Я говорю что си++ хуже жс)
Где тряпки?)

Mikhail
11.10.2017
21:35:23

Google

Ilya
11.10.2017
21:35:32

Mikhail
11.10.2017
21:35:36
inb4 щас бы хуже/лучше

Ilya
11.10.2017
21:37:26
Недавно тут поднимал тему правильного™ использования вима (без jjjjjlllll), посоветовали vim-hardtime

Denis
11.10.2017
21:37:29
|-|=>

Ilya
11.10.2017
21:37:41
Пользуюсь уже дней 5, полёт нормальный
Всем рекомендую
Узнал кучу новых команд...

Bohdan
11.10.2017
21:45:50

Igor
11.10.2017
21:45:57

Alexander
11.10.2017
21:46:08
если кто должится - то будет

Bohdan
11.10.2017
21:46:16
Столько раз уже клавиш разбирал сосочку вправлять, что он даже не держится толком с нижней стороны

Pineapple
12.10.2017
06:59:43

Abbath
12.10.2017
07:04:18
В С++ хоть типы есть

Google

Hot
12.10.2017
07:05:47
Лол, нашли что сравнивать.
Как насчёт холивара Python vs Ruby на телегоканале Haskell?

Ilya
12.10.2017
07:08:00
Давайте без недоязычков
В С++ хоть типы есть
Порой мне кажется, что лучше бы их там не было...
Почему:
1. Неявные приведения
2. auto слишком слаб
3. Утиная типизация в шаблонах
4. SFINAE

Vasiliy
12.10.2017
07:26:58
вот ёлыпалы, а я как раз шёл на работу и думал, что надо бы вопрос по плюсам сюда закинуть...
впрочем, таки попробую
в общем, есть у меня задача написать небольшого демона на плюсах, с ним надо общаться по http. после servant делать http как-то по-другому не хочется вообще, отсюда вопрос - не пробовал ли кто-нибудь генерить из сервантовского описания апи плюсовый код, да не клиентский, а серверный?

Anatoly
12.10.2017
07:31:47
в общем, есть у меня задача написать небольшого демона на плюсах, с ним надо общаться по http. после servant делать http как-то по-другому не хочется вообще, отсюда вопрос - не пробовал ли кто-нибудь генерить из сервантовского описания апи плюсовый код, да не клиентский, а серверный?
рассмотри вместо С++ Go для демона
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}

Vasiliy
12.10.2017
07:35:00
да я бы с радостью что угодно другое взял, но куча т.н. legacy кода вынуждает использовать плюсы

Yuriy
12.10.2017
07:35:38
Haskell (и даже Rust) сможет взаимодействовать с легаси кодом
запускай сервант и вызывай плюсовый код из него

Konstantin
12.10.2017
07:38:11
что значит даже...
особенно!

Pig
12.10.2017
07:38:14

Vasiliy
12.10.2017
07:38:34
эта мысль у меня тоже была, но я с ffi в хаскеле дел вообще не имел

Yuriy
12.10.2017
07:39:47
что значит даже...
Rust занимает последнее (второе) место в моём персональном списке годных языков

Konstantin
12.10.2017
07:42:29
в данном случае стакан наполовину полон, я считаю.

Vasiliy
12.10.2017
07:43:05
а ffi не так уж и страшно выглядит, спасибо, рассмотрю этот вариант

Дмитрий
12.10.2017
07:43:07

Google

Pig
12.10.2017
07:43:53
Кажется @qnikst делал доклад как скрещивать раст с хаскелем через ffi.

Alexander
12.10.2017
07:44:15
делал, могу пересказать в одно предложение
Haskell<->C-FFI<->Rust
не работает для adt, но можно предположить, что мы знаем memory representation и тогда в сторону rust можно их передавать

Denis
12.10.2017
07:48:50
а есть где-нибудь практика использовать TH как компайл-тайм ассерты или это я наркоманю?

Anatoly
12.10.2017
07:48:58

Ilya
12.10.2017
07:50:29
Решил почитать про FFI сейчас на wiki.haskell
For instance, to call the exponential function ("exp") of the libc, you only have to translate its prototype:
double exp(double);
into the following Haskell code
foreign import ccall "exp" c_exp :: Double -> Double
Now you can use the function "c_exp" just like any other Haskell function. When evaluated, it will call "exp".
Это что руками нужно писать? ?

illiatshurotshka❄️
12.10.2017
07:50:54

Ilya
12.10.2017
07:51:02
Или это просто пример для новичков?

kana
12.10.2017
07:51:49

Ilya
12.10.2017
07:52:19
Тип для этого придумали спец. ПО, в других языках
Мне интересно, как в хаскелле

Denis
12.10.2017
07:52:52
в других языках придумали ПО чтобы описывать типы в хаскелле?

Ilya
12.10.2017
07:52:56
Описать сигнатуру одной функции не сложно, а если их 100?

illiatshurotshka❄️
12.10.2017
07:53:43
ну ты же хочешь нормальную типизацию если используешь хаскель, так?

Ilya
12.10.2017
07:54:05
Similarly, to export the following Haskell function:
triple :: Int -> Int triple x = 3*x
so that it can be used in foreign codes, you only have to write:
foreign export ccall triple :: Int -> Int
Зачем тут Int -> Int писать второй раз?

Yuriy
12.10.2017
07:55:04

Google

Denis
12.10.2017
07:56:22
@cblp_su ну мне либо регулярки на зав. типах переписывать(Вейрих после strangeloop библиотеку не релизнула, к слову?), либо так

Yuriy
12.10.2017
07:57:04

Denis
12.10.2017
07:57:58
можно конечно и самому написать, но это долго и лень

Yuriy
12.10.2017
07:58:28

Denis
12.10.2017
08:00:22
https://github.com/sweirich/dth/tree/master/regexp
ну как всегда, подготовлено для доклада/пейпера и всё

Pig
12.10.2017
08:00:48

Ilya
12.10.2017
08:03:20
Короче это всё равно отдаёт какой-то лишней работой. Не знаю, может меня избаловал swig
Вот там можно импортировать целую либу за O(1) от размера либы
Не за O(n)

Yuriy
12.10.2017
08:10:14
наверное, для Haskell тоже можно написать swig
наверное, кто-то для себя уже написал
а swig, простите, в какой язык встроен?

Ilya
12.10.2017
08:12:09
Он не встроен, это внешний инструмент для связывания C/C++ и остальных языков
Список "остальных языков"
Allegro Common Lisp support
Android support
C# support
Chicken support
D support
Go support
Guile support
Java support
Common Lisp support
Lua support
Modula3 support
MzScheme/Racket support
Ocaml support
Octave support
Perl5 support
PHP support
Pike support
Python support
R support
Ruby support
Tcl support
Х-ля нет

Pig
12.10.2017
08:22:34
https://wiki.haskell.org/Foreign_Function_Interface#Tools

Ilya
12.10.2017
08:24:50

Google

Andrei
12.10.2017
08:25:18

Alexander
12.10.2017
08:25:40

Pig
12.10.2017
08:31:08
Гитхаб в очередной раз что-то сделал с интерфейсом — опять глаза текут.

Aragaer
12.10.2017
08:32:10
в каком месте?

Pig
12.10.2017
08:33:17
Переделали фид, где отображалась активность зафоловленных аккаунтов, и добавили рекомендации (!)
На главной

Aragaer
12.10.2017
08:34:18
а. Чот может и поменялось. Я там задерживаюсь примерно на минуту, чтобы перейти на какой-то из своих репозиториев, когда забыл его точное название. Обычно иду напрямую
и у меня почему-то нет рекомендаций вроде
а, вкладка discover

illiatshurotshka❄️
12.10.2017
08:35:39

Yuriy
12.10.2017
08:51:20
Х-ля нет
можно же взять и дописать внешний инструмент вместо того, чтобы ругать за недостаточную красоту то, что в Хаскелле есть из коробки

Ilya
12.10.2017
08:52:36

Alexander
12.10.2017
08:54:02
кто-нить bindings-DSL юзал?
т.е. остальные не для автоматического импорта, а просто жизнь немного упрощают

Yuriy
12.10.2017
09:01:26

Pig
12.10.2017
09:02:03
Теперь там жирные черные буквы и аватарки.

Julian
12.10.2017
19:05:28
Сегодня набрел на статью - http://bitemyapp.com/posts/2017-10-06-persistent-ecto-activerecord.html
Речь там о Persistent, и мне вспомнилось, что кто-то в этом чате ругал его и говорил, что esqueleto норм. Если мне это не привиделось, то отзовитесь и скажите в чем там проблема и стоит ли боятся его использовать?