
A64m
15.12.2017
12:45:05
там же типичная "мейнстримизация", когда недоэмельный синтаксис делают похожим на си, как в скале или там немерле
я даже уже название для транслятора придумал, а это самое главное

illiatshurotshka❄️
15.12.2017
12:46:42

Leonid
15.12.2017
12:47:01
@A64m_qb0 молодежно это называется транспилятор, а у вас термины пенсионерские

Google

Leonid
15.12.2017
12:50:12

A64m
15.12.2017
13:00:18
эмеле/хаскелеобразный синтаксис вроде не особо сложно парсистся.

ParkeT
15.12.2017
13:00:27

Leonid
15.12.2017
13:01:09
transpiler, см яваскрипт и фронтендеры

A64m
15.12.2017
13:01:30
просто есть такая школа успехонеизбегания, которая утверждает что синтаксис надо любой ценой делать непохожим на эмельнохаскельный

Dmitry
15.12.2017
13:01:43
мпилятор

illiatshurotshka❄️
15.12.2017
13:02:29

Leonid
15.12.2017
13:02:39
@A64m_qb0 назови хотя-бы один мейнстрим язык с эмельнохаскельным синтаксисом

illiatshurotshka❄️
15.12.2017
13:02:59
define мейнстрим

Leonid
15.12.2017
13:03:24
гитхаб топ 10

illiatshurotshka❄️
15.12.2017
13:04:10

Leonid
15.12.2017
13:04:58
Ну ML не видать. хочешь быть успешным - будь похож на яваскрипт

illiatshurotshka❄️
15.12.2017
13:05:46
— reasonml developers

Google

A64m
15.12.2017
13:05:52
не так давно говорили, что питон никогда мейнстримом не будет из-за экзотического синтаксиса

illiatshurotshka❄️
15.12.2017
13:07:15
хммммм

A64m
15.12.2017
13:07:19
но если язык достаточно плохой - синтаксис для успеха не помеха

illiatshurotshka❄️
15.12.2017
13:07:21
у раста до 0.1 был ml синтакс
?

Leonid
15.12.2017
13:07:57
про сигнификант вайтспейс в питоне до сих пор ноют
кстати в питоне у меня не возникает проблем с индентацией в емаксе...

illiatshurotshka❄️
15.12.2017
13:08:28
лямбду на два выражения не сделать

Leonid
15.12.2017
13:08:34
а с хаскелем вечно всё плохо
потому что лямбда выражение а не стейтмент
а в хаскеле всё выражение
кроме do
чёрт

A64m
15.12.2017
13:09:22
странно, я как-то с особыми проблемами в разных редакторах не сталкивался.
и do выражение (foo <- bar) нет

Leonid
15.12.2017
13:10:15
у nix-mode вообще проблема с индентацией. Автор не может раздуплить вложенные let in

Aleksey
15.12.2017
13:10:53
В питоне отступы кратные. И есть индиктор "дальше блок" - :

Leonid
15.12.2017
13:11:30
изменение индентации через s/^ // и s/^/ / вообще круть

A64m
15.12.2017
13:11:48
во всех языках со значимыми отступами есть такие индикаторы. вроде let where do и т.д. в хаскеле

illiatshurotshka❄️
15.12.2017
13:12:27
https://github.com/mystor/slag/blob/master/examples/enums.slag

Google

illiatshurotshka❄️
15.12.2017
13:12:39
лол

Leonid
15.12.2017
13:13:36
в rust меня больше всего выбивает из колеи let бинды с сайдэффектами

illiatshurotshka❄️
15.12.2017
13:13:49
let _ = ?

A64m
15.12.2017
13:14:00
а в расте есть поддержка блидтулов для таких штук? Чтоб применять препроцессоры, локации ошибок транслировать и т.д.?

Leonid
15.12.2017
13:14:10
let x = foo vs x <- foo
@A64m_qb0 через build.rs
как в кабале, в общем
кроме пары благословенных

A64m
15.12.2017
13:15:07
в кабале то только пускатели препроцессора, сорсмапы никак не поддерживаются

Leonid
15.12.2017
13:15:40
ТУЛИНГ НЕ ГОТОВ К УСПЕХУ

Alexander
15.12.2017
13:17:13

Aleksey
15.12.2017
13:23:52

Leonid
15.12.2017
13:24:23
@astynax а не надо let использовать! это может всяким MLщикам и привычно, а мне нет
что им в var или my не нравилось?

Aleksey
15.12.2017
13:24:43
let, вон, и в JS есть давно

A64m
15.12.2017
13:25:12
let это бейсик же

Leonid
15.12.2017
13:25:36
в JS и "стрелочные функции" считаются невероятным изобретением, а не очевидным правильным решением которое надо было сразу вводить

Aleksey
15.12.2017
13:25:37
И Лисп

A64m
15.12.2017
13:26:59
РЕЧЬ ПРО МЕЙНСТРИМ, КАКОЙ ЛИСП ЕЩЕ?

Google

Aleksey
15.12.2017
13:27:01
Да вообще LET в роли ключевого слова мног где есть. В Расте хоть паттернматчинг в let работает, в отличие от лиспа
JS ЭТО МЕЙНСТРИМОВЫЙ ЛИСП ЖИ!

Denis
15.12.2017
13:28:55

Leonid
15.12.2017
13:29:14
еще в расте есть if с паттерн матчем, и без else! я вообще с трудом такое могу распарсить

illiatshurotshka❄️
15.12.2017
13:30:01

Leonid
15.12.2017
13:30:24
Ilia ? мне от этого только хуже становится

A64m
15.12.2017
13:30:26
что это вообще означает?

illiatshurotshka❄️
15.12.2017
13:30:32
мем

Denis
15.12.2017
13:30:51
так и про koka говорить можно

illiatshurotshka❄️
15.12.2017
13:31:07

Admin
ERROR: S client not available

illiatshurotshka❄️
15.12.2017
13:31:16
очень легко определить

Leonid
15.12.2017
13:32:36
выглядит погано

A64m
15.12.2017
13:32:46
if без else это святое для программиста. Никогда бы не подумал, но постоянно читал на рсдн что это проблема немерле (там if без else называется when)

illiatshurotshka❄️
15.12.2017
13:33:23

Leonid
15.12.2017
13:33:23
when должно быть функцией, amirite?

A64m
15.12.2017
13:33:40
и вот прямо программисты писали что жизни от этого никакой нет. when вместо моего любимого if без else? Да как я теперь программировать та буду?

illiatshurotshka❄️
15.12.2017
13:33:58
if let Ok(value) = read_line() {
println!("{}", value);
}
в расте без else подразумевается } else { () }

Leonid
15.12.2017
13:34:53
игрушечный язык, короче

Google

Leonid
15.12.2017
13:37:34
еще в нём типажы (лол) не наследуются, нет приватных членов и конструкторов. и бедненькие возможности для обобщенного программирования
в общем D круче

Ignat
15.12.2017
13:38:21
тайпклассы тоже не наследуются, но ведь констрейнты никто не отменял

A64m
15.12.2017
13:39:00
любопытно, что D нравится Попову, который видел все 5-6 более-менее приличных ЯП, типичный любитель D, конечно, видел 0

illiatshurotshka❄️
15.12.2017
13:45:18
и на D тем более, брр

Leonid
15.12.2017
13:48:02
ну закинуть удочку мне это не мешает

illiatshurotshka❄️
15.12.2017
13:48:49
и смысл

Leonid
15.12.2017
13:49:20
чисто поржать
или вот, например https://i.redd.it/mvhki9n5nw301.png

illiatshurotshka❄️
15.12.2017
13:49:39
?
когда мне кто-то говорит что D можно сравнивать с растом я показываю этот код:
import std.variant;
import std.stdio;
alias None = typeof(null);
alias Maybe(T) = Algebraic!(T,None);
void test(T)(Maybe!T val) {
val.visit!(
(T i) => writeln("Some ", i),
(None) => writeln("None")
);
}
void main() {
Maybe!int val = 1;
test!int(val);
val = null;
test!int(val);
}

Index
15.12.2017
13:54:20

Leonid
15.12.2017
13:54:54
@int_index а что в rust нет супер-типажей? Есть же вроде?

Index
15.12.2017
13:54:55
компилятор даже заботливо вытащит один словарик из другого, когда надо, или положит
в Расте вообще traits

Leonid
15.12.2017
13:55:51
типажи. а хаскеле классы типов. и сверх-классы типов

illiatshurotshka❄️
15.12.2017
13:56:04
struct Id(i64);
trait IDObject { fn id(Self) -> Id; }
trait User: IDObject { fn name(Self) -> String; }
let user = make_user("memes");
println!("{} {}", user.id(), user.name());

Leonid
15.12.2017
13:58:04
ну вот, сверх-типажи.

Index
15.12.2017
13:58:26
убертип

Leonid
15.12.2017
13:59:31
UberTypklasse