“)(output_seq(列表头seq(最小seeklen(长度seq))))(写入字符串“\n“)))))(定义(html-out-Anchor Anum out)(格式化输出”“(Anum->str Anum)”)(定义(html-out-sequence-A-link-Anum-out)(let((Astr(Anum->str Anum)))(格式化输出”~答“阿斯特阿斯特)));; 麻省理工学院项目工作:(定义(Anum->Afun Anum)(eval(字符串->符号(字符串小写(Anum->str-Anum)))用户初始环境));; (complist->exprstr(列表1 2 3 4))-->“A000001(A000002(A000003(A000004(n)))”(定义(complist->exprstr-comlist)(带字符串输出端口(λ(输出)(for-each(lambda(anum))(格式输出“~A(”(anum->str-anum)))共犯)(格式输出“n”)(for-each(lambda(x)(格式输出“)”)兼容))))(定义(仅检查组成输出端口comp base-seq Aseq Astr?)(let((Acomp(合成列表(map Anum->Afun comp)))(cond((不等于?(map Acomp base-seq)Aseq))(格式输出“!!!组成~A=~A不正确!\n”Astr(complist->exprstr-comp)))(仅检查?(格式输出“是的,组成~A=~A似乎正确。\n”Astr(complist->exprstr-comp))))))(定义(检查条目10列表)(output-OEIS-entry列表1024 10#t“Kuu 00 2006”(current-output-port))(define(checkentry25 listlet)(output-OEIS-entry listlet 1024 25#t“Kuu 00 2006”(current-output-port))(define(checkentry55 listlet)(output-OEIS-entry listlet 1024 45#t“Kuu 00 2006”(current-output-port))(定义(output-entries-to-file120_10 listlets outfile子日期)(无输出文件的调用(lambda(输出)(map(lambda(listlet)(output-OEIS-entry listlet 120 10#f子状态输出))列表))))(define(output-entries to-file120_45 listlets outfile subm date)(无输出文件的调用(λ(输出)(map(lambda(listlet)(output-OEIS-entry listlet 120 45#f子状态输出))列表))))(定义(组合字符串数组x)(减少字符串附加“”(cdr x))(定义(output-OEIS-entry listlet checkupto-nseek-len check-only?sub-date输出)(let*((Anum(list-ref listlet 0))(名称(list-ref listlet 1))(恢复(cddr列表))(c(cond((assoc'c:rest-of)=>combstringpars)(else#f))(e(cond((assoc'e:rest-of)=>combstringpars)(else#f))(f(cond((assoc'f:rest-of)=>组合数组)(else#f))(y(cond((assoc'y:rest-of)=>combstringpars)(else#f))(off(cond((assoc'off:rest-of)=>cadr)(else(error“output-entry:field'off:'(starting offset)required!”)))(关键字(cond((assoc'关键字:rest-of)=>combstringpars)(else#f))(Ainv(cond((assoc'inv:rest-of)=>cadr)(else#f))(comps(cond((assoc'comps:rest-of)=>cdr)(else#f));;'(公司:(000040 091207)(014580 091208))(方案(cond((assoc'方案:rest-of)=>cdr)(else#f)))(indentries(cond((assoc'indentries:rest-of)=>cdr)(else(list)))(仅检查?(或仅检查?)(检查到n(cond((assoc'upto:rest-of)=>cadr)(否则检查到n))(阿斯特(Anum->str Anum))(Afun(Anum->Afun Anum))(Ainvstr(和Ainv(Anum->str Ainv))(艾恩富恩(和艾恩夫(Anum->Afun Ainv))(base-seq(map(λ(n)(+n关闭))(iota0(-check-upto-n关闭)))(Aseq(映射Afun base-seq))(消极术语?(是否存在?Aseq消极?)(单基第一位-gte-2(条件((第一匹配位置Aseq(λ(x)(>=(abs x)2)))=>1+)(否则为1);;如果没有除0,1或-1以外的项,则使用1作为偏移对的第二个元素。))(更多-零?(秒(和Ainvfun(memq 0 Aseq))=>(λ(r)(memq0(cdr)))(否则#f));;(无大于abs-1项?(适用于所有?Aseq(λ(n)(<(abs n)2)));;不需要。(Y线启动?#f);;还没有。)(第二(安万福;; 如果Aseq有多个0,则给定的反函数是从N到N的非递归注入,;; 我们必须检查Afun(Ainvfun(x)),否则检查Ainvfun(Afun):(第二个(更多-零?(let((Ainvseq(映射Ainvfun base-seq))(第二个((不等于?(map Afun Ainvseq)base-seq))(格式输出“!!!此函数~A不是注入~A的反函数(检查到n=~A)。\n”Astr Ainvstr公司))(仅检查?(格式输出“是的,此函数~A似乎是非注入~A的反函数(检查到n=~A)。\n”Astr Ainvstr检查)))) ;; 让)((不(等于?(map Ainvfun Aseq)base-seq))(格式输出“!!!~A的反向~A不正确\n”Ainvstr阿斯特))(仅检查?(格式输出“是的,函数~A在计算到n=~A\n”Ainvstr Astr检查)))))(第二(比较(每个(λ(comp))(仅检查组成输出comp base-seq Aseq Astr?))计算机)))(第二条(仅检查?(html-out-sequence-A-link Anum输出站)(格式输出端口“=\n”)(html-out-sequence-search-link输出端口Aseq seek-len))(否则(格式化输出端口“%I~A\n”Astr)(设*((max-term-line-len 69);;As(字符串长度“%S A012345”)=10。(第1len部分(len-of-max-full-line-prefix Aseq max-term-line-len)(part2len(len-of-max-full-line-prefix(list-tail Aseq part1len)max-term-line-len));;可能为零!(part3len(len-of-max-full-line-prefix(list-tail Aseq(+part1len part2len)));;可能是零!(第1部分(子列表Aseq 0 part1len)(第2部分(Aseq第1部分(+第1部分第2部分));;如果part2len=0,则结果()。(第3部分(子列表Aseq(+part1len part2len)(+part1len part 2len parth3len));;如果part2len=0或part3len=0,则返回results()。)(带输出到端口输出端口(λ()(格式化输出端口“%S~A”Ast)(output_seq(map abs part1))(格式输出端口“,\n”)(第二部分(第二对)(格式化输出端口“%T~A”Astr)(output_seq(map abs part2))(格式输出端口“,\n”)))(第二部分(第三对)(格式输出端口“%U~A”Astr)(output_seq(映射abs部分3))(换行输出端口)))(第二个(否定术语?(格式化输出端口“%V~A”Astr)(output_seq part1)(格式化输出接口“,\n”)(第二部分(第二对)(格式化输出端口“%W~A”Astr)(output_seq part2)(格式化输出端“,\n”)))(第二部分(第三对)(格式输出端口“%X~A”Astr)(output_seq part3)(换行输出端口)))))))) ;; 出租*(格式化输出端口“%N~A~A\N”Astr名称)(条件(f(格式化输出端口“%F~A~A\n”Astr F)))(条件(c)(格式化输出端口“%C~A~A\n”Astr C)))(条件(e)(格式输出“%e~A~A\n”Aster e)))(格式输出端口“%H~A A.Karttunen,计算此序列的方案-程序。\n“阿斯特)(第二((双凹口)(第二((memq’GF2X凹痕)(格式输出端口“%H~AGF(2)[X]-多项式序列的索引项\n“阿斯特)))(cond((memq的跨域缩进)(格式化输出“%H~A由结构域N和GF(2)[X]之间的全等积定义的序列的索引条目\n“阿斯特)))(第二个((memq'异或同余契约)(格式输出端口“%H~A异或下由同余积定义的序列的索引项\n“阿斯特)))(cond((memq’Lattices凹痕)(格式输出端口“%H~A与格相关的序列的索引项\n“阿斯特)))(第二个(每个压头)(格式输出端口“%H~A自然数排列序列的索引项\n“阿斯特)))(第二次((memq’Catsigperm契约)(格式输出端口“%H~A加泰罗尼亚语自同构的符号置换索引条目\n“阿斯特)))))(第二(Ainv(第二条(不是Y线启动?)(格式输出“%Y~A”Astr)(设置!Y线启动?#t)))(第二个(更多-零?(格式输出“~A的逆”Ainvstr))(否则(格式输出“反向:~A”Ainvstr)))));; 我们也应该检查它们,但不能只使用A数字,因为;; 我们需要函数定义。(在这里,老式的Lisp将击败Scheme。)(第二(比较(第二条(不是Y线启动?)(格式输出“%Y~A”Astr)(设置!Y线启动?#t)))(格式输出“a(n)”)(对于每个(lambda(comp))(格式化outport“=~A”(complist->exprstr comp)))计算机)(格式输出“.”)))(秒(y(第二条(不是Y线启动?)(格式输出“%Y~A”Astr)(设置!Y线启动?#t)))(格式输出“~A”y)))(如果Y线启动?(换行输出))(格式化输出端口“%K~A~A~A”\nAstr(如果是否定术语?“sign”“nonn”)(如果关键字(字符串附加“,”关键字)“”))(格式化输出端口“%O~A~A,~A\n”Astr off one-based-pos-of-first-term-gte-2一垒)(格式输出端口“%A~A Antti Karttunen(His-Firstname.His-Sorname(AT)gmail.com),~A\n”Astr子日期)(第二个方案(格式输出“%o~A(MIT方案:)\n”Astr)(for-each(lambda(schemedef)(格式输出“%o~A~A\n”Astr schemeded))方案)))(换行输出)) ;; 其他的) ;; 康德) ;; 出租*)