1 j
很久以前,我在开源社区看到了这段代码:
frq =: [:-.[:(2:|+/)\''''&=
sp =: (#@[)([:<[}.[:>])"0 0[(]</.~[:+/\E.*.[:frq]),
spf =: [:<[:([:','&sp[:-.&')'=&'('{"0 1,.&',')>
cl =: #~[:-.e.&(33{.a.)*.frq
parse =: [:([:<[:((spf@{.),(}.`([:<[:([:<[:spf"0[:'),'&sp>)"0[:');'&sp[:>{:)@.(2:=#)))[:':-'&sp>)"0 _1:}.[:'.'&sp cl
isVar =: [:(91&>*.64&<)[:a.&i.[:{.>
replace =: ((]i.~[:{.[){([:{:[),]`([:<[$:[:>])@.([:32&=[:3!:0[:>]))"2 0
gp =: [:>[:{.>
gv =: [:(#~[:+./"1 isVar"0),.
suit =: ([(0:`(([:(#=[:#[:~.[:{.|:)[:~.[:(#~[:-.[:isVar"0[:{:|:)gv)*.([:*./[:+./[:(isVar"0,=/),:))@.(([:#[)=[:#]))[:gp])"1 0#]
sr =: [(](replace~[:|:])"2[:(([:-.[:isVar{:)"1#])[gv~[:gp])"1 0 suit
groupVars =: [:([:<]$~2:,~[:-:#)"1[:>[:([:<[:;(>@[)([:<,"1 1)"1 2(>@]))/]</.~[:{.|:
isRuleTrue =: ([:+./([:*./](isTrue~[:>])"1 0[:>[)"0 1)`(0:<[:#getVarsFromRule)@.(0:<#@gv@;@;@[)
isTrue =: ]((a:&e.@])+.[:+./[(isRuleTrue~[:>])"1 0[:-.&a:])[:{:[:|:[:-.&(a:,a:)[:(0 2$a:)&,[:>sr
getVars =: ;(([:<[:~.(>@{.@[)gv[:gp])`((>@{.@[)$:(<@<@gp@])([replace~[:|:[:>])"0 0(}.@[)getVarsFromRule~[:>[:{:[:>])@.([:<:[:#[:>]))"1 0 sr
getVarsFromRule =: ](([:{.])#~[(isRuleTrue~[:>])"1 0[:{:])[:|:[(],[:<[replace~[:|:[:>])"1 0[:]`groupVars@.(0:<#)[:~.[:;[:;]([:<[getVars~[:>])"1 0[:;[
goal =: ([:<S:0[:{.[:parse[:,&'.'])([:{&(>'No';'Yes')isTrue)`([:(]`((>@{.),[:' = '&,[:>{:)@.(2:=#))"1[:>getVars)@.([:+./[:isVar"0[)([:parse[)
Run Code Online (Sandbox Code Playgroud)
我.j
在这些页面上搜索过:(http://filext.com/file-extension/J),(http://fileinfo.com/extension/j).他们说是用Java语言编写的.
但是,它被命名为:interpreter.j
; 并且,在其存储库中,它被定义为:Objective-J
.
我问了一些人:"它是用Objective-J写的吗?".他们问我:"这段代码是否被混淆了?".
在这段代码中使用了哪种编程语言?
是的,它是J编程语言.如果您真的想了解更多信息,请访问http://www.jsoftware.com
因为它如此简洁,起初可能很难阅读,但有一个非常支持的社区愿意回答问题.http://www.jsoftware.com/forums.htm
此外,J交互式环境还包括实验室,它将实际引导您完成理解某些概念的过程,同时允许您使用该语言的全部功能.
相反,如果您想要了解阅读的难度,那么请继续 - 但也许还要尝试一下.:-)