给定一个字符串"ABCDE",如何在Golfscript中找到另一个字符串"C"的出现索引?
?运算符似乎不起作用(http://www.golfscript.com/golfscript/builtin.html#?):
"C""ABCDE"?
这段代码是如何工作的?
;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`1000<~\;
Run Code Online (Sandbox Code Playgroud)
好像用了数组@*
和循环{/**/}
,但是6666是什么?什么是\/
?
;'2706 410'
~{.@\%.}do;
Run Code Online (Sandbox Code Playgroud)
来自GCD的例子.看起来流行音乐和丢弃音乐在开始时什么也不做,所以它为什么会出现?
嵌套在golfscript中的循环中,或者我不知道如何使用它们?
我希望将Q从5迭代到0,并且对于每次迭代,将Z从10迭代到0.单循环分别运行良好,它们看起来是自包含的(不依赖于操作之间的堆栈):
5:Q;
{"Q:"Q+ p Q}
{
Q 1- :Q;
}while
10:Z;{"Z:"Z+ p Z}{Z 1- :Z;}while
Run Code Online (Sandbox Code Playgroud)
输出:
"Q:5"
"Q:4"
"Q:3"
"Q:2"
"Q:1"
"Q:0"
"Z:10"
"Z:9"
"Z:8"
"Z:7"
"Z:6"
"Z:5"
"Z:4"
"Z:3"
"Z:2"
"Z:1"
"Z:0"
Run Code Online (Sandbox Code Playgroud)
但是如果我把Z循环放在Q循环中,我会得到奇怪的结果:
5:Q;
{"Q:"Q+ p Q}
{
10:Z;{"Z:"Z+ p Z}{Z 1- :Z;}while
Q 1- :Q;
}while
Run Code Online (Sandbox Code Playgroud)
输出:
"Q:5"
"Z:10"
"Z:9"
"Z:8"
"Z:7"
"Z:6"
"Z:5"
"Z:4"
"Z:3"
"Z:2"
"Z:1"
"Z:0"
"Z:0"
Run Code Online (Sandbox Code Playgroud)
基于Z打印输出两次,似乎只有一个当前条件块,并且任何执行"while"都会覆盖它.
无论如何,我将如何在golfscript中完成这一壮举?