Комментарии 24
Спасибо за статью, многое стало понятным. И все-же… Это эзотерический язык программирования, по крайней мере для меня.ццц
Простите за сарказм, но
О да. Стало ГОРАЗДО понятнее :)
А если серьезно, какие есть причины вообще писать на J, а не на чем-нибудь другом?
(]%[**:@>:@])[:^[:-%~
(] % [ * *:@>:@]) [: ^ [: - %~
О да. Стало ГОРАЗДО понятнее :)
А если серьезно, какие есть причины вообще писать на J, а не на чем-нибудь другом?
О да. Стало ГОРАЗДО понятнее :)Да, было довольно трудно найти подходящий пример :) Вообще, правила хорошо работают все скопом, а не по отдельности.
А если серьезно, какие есть причины вообще писать на J, а не на чем-нибудь другом?Да хоть бы и for fun. На брейнфаке же пишут.
Ну разве что for fun :)
Я писал не just for fun. Тут дело далеко не только в синтаксисе, а в высоком уровне операций над векторами. А краткость конструкций позвоняет не отвлекаться от самого написания.
А прочесть потом смогли? :)
Легко!… если конечно не через 6 месяцев, на протяжении которых не трогал J. Но в основном по причине, что словарь забывается быстрее чем в других языках, но думаю он просто не успел достаточно прочно осесть в голове/на пальцах. После восстановления словаря — читается хорошо.
В J, как и в любом языке, большинство конструкций довольно простые, просто люди удивляются типа как же это так записано без слов, но на самом деле ничего такого нет. Потом открывается масса других достоинств, но к синтаксису они имеют мало отношения.
В J, как и в любом языке, большинство конструкций довольно простые, просто люди удивляются типа как же это так записано без слов, но на самом деле ничего такого нет. Потом открывается масса других достоинств, но к синтаксису они имеют мало отношения.
Лично меня просто пугают слишком краткие записи. Что J, что Хаскель, что Перл — их как-то очень тяжело проговаривать про себя, слишком мало слов.
Не понимаю. Неужели вам удобнее воспринять:
чем
?
sum=0; foreach i in L { sum+=i }; return sum ?
чем
+/ L
NB. / это over или foldr
?
sum(L)
Люблю Питон :)
Тем более.
Просто через какое-то время нужда в мнемониках отпадает, и
sum =: +/
sum(L)
Просто через какое-то время нужда в мнемониках отпадает, и
+/
воспринимается ничуть не хуже.Ни в коем случае не отрицаю :) Вопрос в поддержке кода кем-то другим…
Более корректное сравнение с Python:
Исходя из опыта разработки DSL могу сказать, что нужда в мнемониках не отпадает. Наоборот, на реальном оборудовании выясняется, что сложение может быть знаковым/беззнаковым, с разным округлением и разным контролем переполнения, деление может быть целочисленным и обычным и т. д. И вообще есть много бинарных операторов, попытка обозначить которые приведёт к неоднозначным результатам. Например, при перемножении векторов идёт покомпонентное перемножение или традиционное векторное произведение? А при перемножении множеств?
from functools import reduce
from operator import add
reduce(add, L, 0)
Исходя из опыта разработки DSL могу сказать, что нужда в мнемониках не отпадает. Наоборот, на реальном оборудовании выясняется, что сложение может быть знаковым/беззнаковым, с разным округлением и разным контролем переполнения, деление может быть целочисленным и обычным и т. д. И вообще есть много бинарных операторов, попытка обозначить которые приведёт к неоднозначным результатам. Например, при перемножении векторов идёт покомпонентное перемножение или традиционное векторное произведение? А при перемножении множеств?
Исходя из опыта разработки DSL могу сказать, что нужда в мнемониках не отпадает. Наоборот, на реальном оборудовании выясняется, что сложение может быть знаковым/беззнаковым, с разным округлением и разным контролем переполнения, деление может быть целочисленным и обычным и т. д.Я, может, не совсем понял, но это уже будут не мнемоники, а вполне себе собственные глаголы вроде
<.@%
. Под мнемониками я имею в виду именно оборачивание примитива в глагол (+/
, конечно, не примитив)Не знаю, как вы, но я код проговариваю про себя, когда читаю. Соответственно, «плюс слеш эл энбэ точка» звучит как клинопись какая-то.
Может, дело привычки, но порог вхождения в такой язык сильно повышается.
Может, дело привычки, но порог вхождения в такой язык сильно повышается.
Да, Perl и правда курит в сторонке, он позволяет писать какой угодно код, хоть запутанный, хоть самодокументированный, в отличии от. Тем не менне, с автором статьи согласен, эти правила никому не мешали.
Я первый раз вижу этот язык, будто программирование смайликами
Мне одному кажется, что данный язык программирования серьезно увеличивает энтропию ?!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
J может быть читаемым