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