-
\$\开始组\$ 相关的 (数字输入/输出可以是字节值形式吗?) \$\端组\$ – mbomb007型 评论 2016年12月13日16:10 -
6 \$\开始组\$ “当前投票结果现在是标签维基的一部分”哪个标签维基? meta-wiki没有code-golf标签。 ppcg维基有 codegolf.stackexchange.com/tags/code-golf/info 但这里缺少很多答案。 \$\端组\$ – Spar平台 评论 2018年7月18日18:17
118个答案
函数可以通过其返回值输出
-
1 \$\开始组\$ 有多少种语言支持此功能? 我支持输出到STDOUT。 \$\端组\$ – 用户10766 评论 2014年11月3日0:16 -
35 -
\$\开始组\$ 哦,这不被视为输出我最后听到的内容——这是返回一个值。 如果问题要求函数,这是正确的。 如果问题要求一个程序,我支持输出到STDOUT或文件。 \$\端组\$ – 用户10766 评论 2014年11月3日0:19 -
三 \$\开始组\$ @hosch250这个特定的答案只涉及函数。 是否 函数和/或程序是否被允许是另一个问题(参见链接的元问题,但当然最终取决于挑战作者)。 但这个答案说明 如果 函数是允许的,然后应该允许它们使用其返回值作为结果-这里的所有其他答案都是以单词开头的 功能 . \$\端组\$ – 马丁·恩德 评论 2014年11月3日0:21 -
\$\开始组\$ 哦,对不起。 我肯定会投票决定。 \$\端组\$ – 用户10766 评论 2014年11月3日0:22 -
1 \$\开始组\$ @MartinEnder大多数(全部?)8位BASIC解释器不专门从子例程返回值,而许多解释器允许您使用 DEF(排放催化剂) 关键字,这是非常有限的。 我也不记得WorkBench中包含的Amiga BASIC有来自子例程的返回值,但我已经很多年没有使用过Amiga BASIC了,所以不要引用我的话。 6502/10程序集也不会从子程序返回值。 如果你知道你已经将结果存储在累加器中,那么你只需在子例程返回时使用它。 \$\端组\$ – 肖恩·贝伯斯 评论 2017年4月4日8:58 -
2 -
1 -
1
程序可以通过GUI提示进行输入
-
1 -
\$\开始组\$ @Ypnypn我不知道有哪种语言可以从STDIN中读取,但在哪里生成图形提示比这更短。 但在这种情况下,我认为两者都可以。 \$\端组\$ – 马丁·恩德 评论 2014年11月4日9:22 -
1 -
-
-
1 -
1
程序可以通过在屏幕上显示来输出。
$echo“这是测试线!”|vim--c'nm Q vEUWvEuWQ |normal Q'
这是一条测试线! ~ ~ ~ ~ ~
-
\$\开始组\$ 嗯……这应该是“当且仅当挑战要求输出一个值保证在0到255之间(包括0和255)的整数时”吗? 例如,如果挑战是“输出传递给程序的参数数量”,那么 int main(int argc,char**argv){return argc;} 应该 不 是一个有效的解决方案(IMO),因为退出代码被 0xFF(0xFF) 。(也许这是规则中隐含的正确性的一部分?只是想说清楚。) \$\端组\$ – 瓦查金 评论 2016年12月18日5:05 -
6 \$\开始组\$ @wchargin这似乎是对运行程序所用的任何东西的限制。 我可以编写一个PowerShell脚本,如 退出1000000 ,并在PowerShell ISE中执行。 这不会给我带来任何问题。 \$\端组\$ – 霹雳舞 评论 2016年12月19日19:14 -
三 -
-
-
-
5 \$\开始组\$ @ShmuelH。 如果您故意使程序崩溃(或仅使用等效的 退出(代码) 在该语言中)以获取特定的退出代码,它是有效的。 \$\端组\$ – 用户45941 评论 2017年1月9日16:31
函数可以通过与完整程序相同的方法输出
-
\$\开始组\$ 这违反了单一责任原则、关注点分离原则,我认为它在代码高尔夫中没有什么用处。 此外,函数式编程语言根本不允许您这样做,我希望您对Haskell有更多的爱。 \$\端组\$ – 约翰·德瑞克 评论 2014年11月3日6:42 -
4 -
5 -
\$\开始组\$ @JanDvorak Yeesh,我不认为可以重复打印以“输出”列表。 我认为,即使这次投票通过,也不应该允许这样做,因为输出并不是要求的列表。 \$\端组\$ – xnor公司 评论 2014年11月3日9:06 -
12 -
\$\开始组\$ @MartinBüttner嗯,你说得对,程序真正“输出”的是结果的字符串表示,所以这个规则应该意味着函数也可以保持一致。 但这是另一个尴尬的结果,使我不赞成这一规则。 \$\端组\$ – xnor公司 评论 2014年11月4日2:15 -
程序可以输出到STDERR
-
11 -
7 -
1 -
-
-
8 \$\开始组\$ 这是PHP的突破,其中 <?= a; 输出 一 至STDOUT和 注意:在第3行的[…][…]中使用了未定义的常量a-假定为“a” 至STDERR。 \$\端组\$ – 伊斯梅尔·米格尔 评论 2017年1月27日14:35 -
5 -
1
函数可以通过修改其参数或写入输出参数来输出
-
2 -
9 -
1 -
-
-
-
-
1
对于基于堆栈的语言,可以在调用之前将函数的输入推送到堆栈中
-
1 \$\开始组\$ +1,这是CJam和GolfScript(可能还有其他一些基于堆栈的语言)的事实上的标准。 您可能想对输出做出相应的回答。 \$\端组\$ – 马丁·恩德 评论 2016年2月19日13:29 -
7 -
1 \$\开始组\$ 有没有基于堆栈的语言可以让您定义函数? 据我所知,他们中的大多数人都不让你写信 完整程序 通过STDIO使用IO。 (在我看来 功能 应该满足(也许在其他标准中):可以在同一程序中重用的代码片段,而无需再次键入它们) \$\端组\$ – 鞭子 评论 2016年7月10日16:27 -
-
4 \$\开始组\$ @为了完成,flawr:许多(大多数?)非深奥的基于堆栈的语言允许您定义函数。 Factor、Forth、Postscript、Joy、Cat和其他许多功能都有(命名和匿名)。 dc(RPN计算器)具有类似于函数的寄存器。 \$\端组\$ – 联邦调查局。 评论 2016年9月14日17:35 -
\$\开始组\$ @flawr:Underload允许您重用有问题的函数(以一种尴尬的方式,因为Underloads没有命名方法,但这是可能的,而且相当常见)。 \$\端组\$ – 用户62131 评论 2017年1月15日17:05 -
1
程序可以输出到文件
功能可以通过与完整程序相同的方法进行输入
-
\$\开始组\$ 这违反了单一责任原则、关注点分离原则,我认为它在代码高尔夫中没有什么用处。 此外,函数式编程语言根本不允许您这样做,我希望您对Haskell有更多的爱。 \$\端组\$ – 约翰·德瑞克 评论 2014年11月3日6:43 -
24 \$\开始组\$ @JanDvorak我看不到代码高尔夫的良好编码实践的相关性。 有些语言甚至没有 有 函数,它们不一定会因为允许函数而处于劣势。 在I/O选项上更加自由的想法是,每种语言都可以选择最短的语言。 \$\端组\$ – 马丁·恩德 评论 2014年11月3日11:10 -
2 \$\开始组\$ 我唯一反对函数以与程序相同的方式接受输入的情况是,如果问题是“编写一个接受以下参数的函数”。 此调查适用于非特定格式的问题,因此我认为没有理由排除从stdin读取的函数。 \$\端组\$ 评论 2014年11月4日13:16 -
程序可以组合两种或多种输入方法
输入可能被完全忽略
如果适用,支持多个停止状态的图灵机也可以通过其停止状态输出
-
4 -
-
\$\开始组\$ @xnor:通常是这样的,但我看到了图灵机器代码的方言,它确实支持多个停止状态。 (例如,在我通常使用的morphett.info方言中, 停止 是基本的停止状态,但形式的任何状态 halt-<任何字符串> 也被视为停止状态。) \$\端组\$ – 超级绝地224 评论 2015年9月24日19:09
图灵机的输入可以在执行前写入磁带
-
三 -
6 -
三 -
4 -
三 \$\开始组\$ @MDXF当时,关于这个问题的其他几个答案都有作者添加的类似评论(包括马丁的许多答案)。 至少有一个被评论为“这是我投的反对票。”基本上,这是一种对你自己的元提案进行投票的方式,因为你实际上不能在这个网站上对自己的答案投赞成票或反对票。 有趣的是,关于这个话题的大多数评论似乎都被删除了。 \$\端组\$ – 超级绝地224 评论 2017年11月1日11:22 -
2
函数可以通过充当生成器返回列表
-
2 \$\开始组\$ 我甚至没有意识到这是一个争论点。。。 \$\端组\$ – 用户45941 评论 2016年11月30日21:57 -
1 \$\开始组\$ 我不认为是这样,但我们没有列出它,并且在Prolog中将生成器转换为列表在字节方面是相当昂贵的(有一个内置的,但它有一个相当长的名称)。 所以我想确认一下,我不必在Prolog的答案中进行转换。 \$\端组\$ – 用户62131 评论 2016年11月30日23:03 -
-
\$\开始组\$ @mbomb007我认为Python 3s 范围 相当于Python 2 润智 和Python 2 范围 有些不同。。。 \$\端组\$ 评论 2017年8月27日18:44 -
-
程序可以将输入作为最后一个表达式的值
在程序中,键入输入(数字、列表、字符串等),后跟换行符以分隔语句,后跟程序名,然后按Enter键。 例如, 1337 prgm系数 在程序外部,键入输入,按Enter键,然后键入程序名称并按Enter键。
-
4 -
9 \$\开始组\$ 我认为TI-BASIC是一种特殊情况,它与其他语言有着根本的不同,并且只能调用 从 什么可以被视为REPL; 那么,一个完整的程序和一个代码片段有什么不同呢? \$\端组\$ – 康纳·奥布莱恩 评论 2016年2月29日17:06 -
4 \$\开始组\$ @我不同意,你可以在 REPL(更换) 但你可以 也 将它们写在可以执行的单独“文件”中。 它们甚至在调用程序时支持参数,但也可以从stdin或通过提示符读取。 \$\端组\$ – 鞭子 评论 2016年3月5日12:55 -
三 -
4 \$\开始组\$ @lirtosiast根据TI 84+官方指南的两个命令 输入 和 提示 可用。 两者都让程序获取用户输入。 两者的行为都很像例如。 输入() 在Python或MATLAB中。 \$\端组\$ – 鞭子 评论 2016年3月15日17:59 -
1 -
1 -
1 -
4 \$\开始组\$ @值得注意的是,至少对于TI-83和-84计算器,你不能在REPL中编写完整的程序。 例如 输入 / 提示 和循环命令不能从REPL中使用。 \$\端组\$ – 雅各布 评论 2017年1月24日16:41 -
三 -
2
汇编程序可以从寄存器获取输入
-
-
8 -
2 -
4 \$\开始组\$ 如果您使用x86-64打高尔夫球,标准调用约定已经在寄存器中传递了参数。 所以你可以只写一个普通的函数,它可以从编译器生成的代码中调用。 \$\端组\$ – 彼得·科尔德斯 评论 2017年1月1日7:06 -
4 \$\开始组\$ 这需要澄清:我们可以使用 任何 注册,还是只指定由ABI使用的注册? \$\端组\$ – 用户62131 评论 2017年6月11日4:14 -
\$\开始组\$ 调用约定更新:您没有 有 使用标准的C调用约定。 您的语言是汇编/机器代码,所以可能这也是调用方的语言。 它们可以传递参数并获取任何寄存器中的返回值,包括带有条件代码的机器上的FLAGS,如中所述 x86/x64机器代码中的高尔夫技巧 \$\端组\$ – 彼得·科尔德斯 评论 2023年7月21日11:39
基于堆栈的语言中的函数可以将输出留在堆栈中
-
-
-
-
-
-
-
1 \$\开始组\$ @如果语言对返回值有隐式输出,那么这不等于允许“普通”语言中的函数只使用其返回值吗?否则就无法检查返回值是否具有正确的输出? \$\端组\$ – 马丁·恩德 评论 2017年10月31日17:52 -
汇编程序可以将输出写入某些指定的内存位置
函数可以通过存在或不存在错误/异常返回布尔值
在没有任何输入方法的语言中(例如///),程序可以通过插入源代码来获得输入
-
三 \$\开始组\$ @DLosc那么///中需要在末尾更改的代码呢? 例如,一个简单的程序,如果字符串的末尾没有句号,则会在那里添加一个句号 /.;/;// x///;/。 x/ (此处输入); 哪里 x个 是一个保证不在输入中的特殊字符(可能是换行符)。 \$\端组\$ – 博博夸克 评论 2016年11月20日9:34 -
10 -
1 \$\开始组\$ @我们能允许支持输入命令的语言进行硬编码输入吗? \$\端组\$ – 用户85052 评论 2019年8月25日11:38 -
1 -
-
1 -
\$\开始组\$ @boboquack我将发布一组单独的答案,因为它看起来差异很大,共识可能会有所不同。 感谢您的快速回复! \$\端组\$ 评论 2020年10月3日14:26
提交可以使用字符串列表而不是多行字符串
1 2 菲兹牌汽车 4 嗡嗡声
[“1”、“2”、“嘶嘶”、“4”、“嗡嗡”]