- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
onStart =: verb define
wd 'pc game15; pn 15; bin hv; bin h'
i =. 0
for_text. ":@>:0,~?~15 do.
name =. 'a', ":i
wd 'cc ', name , ' button; cn ', text
if. 3 = 4|i do.
wd 'bin z; bin h'
end.
wd 'set ', name, ' wh 80 80'
". 'game15_', name, '_button =: buttonclicked@]&', (":i)
i =. >:i
end.
wd 'set a15 text'
wd 'cc count static; cn 0'
count =: 0
wd 'bin z'
wd 'cc restart button; cn restart'
wd 'pshow'
empty =: 15
0$0
)
buttonclicked =: verb define
if. 1 = (+/)(**)(-/@:<.@:%&4 , -/@:|~&4) empty, y do.
wd 'set a', (":empty), ' text ', wd 'get a', (":y), ' text'
wd 'set a', (":y), ' text'
empty =: y
count =: >:count
wd 'set count text ', ":count
end.
)
game15_restart_button =: verb define
wd 'pclose'
wd 'activity base'
)
wd 'activity base'
verb define … ) <- несбалансированные скобки? WUT?
Толи дело «APL»: А чего только стоит код, передаваемый в строках? J-инъекции в GUI?
Сам APL крут, да, но покажи мне гуи в APL? Ты сможешь набрать APL программу на любом компуктере в любом редакторе? В APL есть тацитное программирование? И можно ли в нём юзать императивные упровляющия конструкции? В APL завездли ООП? (Я просто не знаю:)
> несбалансированные скобки
Почему это?
> код, передаваемый в строках
Мне лень было писать game15_a0_button =: verb def 'buttonclicked 0' и т.д., вот я и нагенерил ;)
> J-инъекции в GUI?
От юзера ничего не евалится ;)
Али ты про wd вообще? Так там не сам J, а кокая-то НЁХ (я не знаю что :)
В стандарте вроде нету, но стандарт APL это ещё хуже, чем стандарт хачкеля: по факту есть один коммерческий интерпретатор (Dyalog APL, http://help.dyalog.com/13.0/index.html), в котором добавлена туева хуча ништяков и интеграций. В нём есть
• function trains для тацитного программирования
• няшный синтаксис для лямбд и операторов
• синтаксис императивных конструкций :If / :Else / :While вот это всё. В оригинальном APL был только goto(→)
• ООП, гуй, интеграция с .Net, Java, Excel, OLE, Ado.NET, etc
J язык кобенаторный, в нём лямды нинужны (-*+) и ононимная функция готова. Но хотя можно и так:
Фу какая вербозность