很多天前,我在开源社区看到了这段代码:
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[)
我在这些网页上搜索了.j
:( http://filext.com/file-extension/J),(http://fileinfo.com/extension/j)。他们说是用Java语言编写的。
但是,它被命名为:interpreter.j
;并且,在其存储库中,它被定义为:Objective-J
。
我问了一些人:“它是用Objective-J写的吗?”。他们问我:“这段代码是否被混淆了?”。
此代码中使用了哪种编程语言?
答案 0 :(得分:9)
是的,它是J编程语言。如果您真的想了解更多信息,请查看http://www.jsoftware.com
因为它如此简洁,一开始可能很难阅读,但有一个非常支持的社区愿意回答问题。 http://www.jsoftware.com/forums.htm
此外,J交互式环境还包括实验室,它将实际引导您完成理解某些概念的过程,同时允许您使用该语言的全部功能。
相反,如果您想要了解阅读的难度,那么请继续 - 但也许还要尝试一下。 : - )
答案 1 :(得分:3)
J programming language,为文件扩展名,bass-ackward assignment表示。
基于我的有限曝光(肯定只包含问题中提供的代码片段),它显然也是我发现的第一种语言,它实际上是一种只用于写入语言的Perl,我是以为我永远不会活着看到:-)我想我更喜欢坚持自己更具可读性的东西。
答案 2 :(得分:0)
不知道J语言是什么,但看起来您的代码确实正确解析了它。