在这一挑战中,用户将轮流使用允许逐渐变老的编程语言来完成三个相当简单的编码任务。
第一个答案必须使用2015年制作的编程语言。一旦至少有一种2015年语言的答案,答案就可以使用2014年制作的编程语言。类似地,不允许使用2013年语言的答案。直到至少有一个2014年答案。
通常,直到提交了使用Y + 1年的语言的答案后,才允许使用Y年的编程语言。唯一的例外是Y = 2015。
寻找你的语言年
要回答这个问题,您必须知道您的编程语言的“制造年份”。当然,这是一个主观术语;一些语言是在多年的发展过程中开发的,并且每年仍在升级许多语言。让“制造”该语言的年份成为该语言的实现在公众中出现的第一年。
如果今年仍然是主观的,请使用常识选择最合适的年份。不要因对年份的选择而陷入一点分歧。请提供指向您的语言的来源的链接。
编程语言的不同版本或标准(例如Python 1、2、3)被视为具有相同初始年份的相同语言。
因此,除非您的语言年份是2015年,否则您只能在提交了其语言年份为您的前一年的答案后才能提交答案。
如果已经存在与您年份相同的有效答案,则可以回答。您的语言是在今年早些时候还是晚些时候开发都没有关系。
任务
您必须完成任务1到3。任务0是可选的。
这些任务或多或少地被选择为与编程的三个重要方面相对应:提供输出(任务1),循环(任务2)和递归(任务3)。
任务0-语言历史记录(可选)
至少写一个段落来说明您所选择的编程语言的历史:谁开发了它,为什么,怎么做等等。如果您本人是在语言诞生时就在身边的,甚至可能在语言的发展中发挥了作用,则尤其值得鼓励。随意将有关该语言对您或您的工作或类似事情的影响的个人轶事联系起来。
如果您太年轻而又不做大量研究就不了解您的语言历史,请考虑给老用户留下笔记,说他们可以编辑您的帖子并添加一些第一手的历史记录。
任务1-“你好,世界!” 变体
编写一个打印程序
[language name] was made in [year made]!
到您的语言的标准输出区域(最新语言的标准输出)。
例如,如果语言是Python,则输出为:
Python was made in 1991!
任务2-ASCII Art N
编写一个程序,让用户在奇正整数输入(你可以假设输入始终有效),并打印出来使用字符的ASCII艺术字母N制成N
。
如果输入为1,则输出为:
N
如果输入为3,则输出为:
N N
NNN
N N
如果输入为5,则输出为:
N N
NN N
N N N
N NN
N N
如果输入为7,则输出为:
N N
NN N
N N N
N N N
N N N
N NN
N N
模式继续这样下去。输出中可能包含尾随空格。
任务3- GCD
编写一个程序,让用户输入两个正整数(您可能会假设输入始终有效),并输出其最大公约数。这被定义为最大的正整数,该整数将两个数相除而没有余数。使用欧几里得算法可以很容易地计算出它。
例子:
8
,12
→ 4
12
,8
→ 4
3
,30
→ 3
5689
,2
→ 1
234
,876
→6
您可以使用内置函数,但是请尝试找出语言的第一版中是否存在该函数。如果没有,请尝试不使用它。
规则
- 您可能会回答多次,但是每个新答案必须使用一种比您上一次回答中的语言至少早五年的语言。因此,如果您使用2015年的语言回答,则只有在允许使用2010年的语言后,您才能再次回答。如果您以2010年的答案开头,那么您就不能将2015年的答案作为第二个答案,因为2015年不在2010年之前。
- 如果可能,编写您的代码,使其可以在您的语言的第一个版本中使用(或尽可能旧的版本)。(这不是必需的,因为找到某些语言的旧编译器/解释器可能很困难。)
- 除非发布的答案有重大错误,或者完成任务的方式截然不同,否则请不要发布已经发布的语言。
- 打高尔夫球的代码很好,但不是必需的。
- 任何程序输出中的尾随换行符都可以。
- 对于任务2和3,所有低于某个合理最大值(如2 16)的输入值都应起作用(至少为256)。
- 在发布此问题之前,您的语言必须已经存在。
- 非常古老的编程语言可能具有与我们今天想象的形式不同的输入和输出形式。这可以。在您的语言环境中,以最大的能力完成任务。
计分
您提交的分数是:
upvotes - downvotes + (2015 - languageYear) / 2
因此,在2015年之前的每年投票数中增加0.5,这有利于使用较旧的语言。得分最高的提交者获胜。
答案列表
下面的堆栈摘录根据其语言年份列出了所有有效答案。
您必须以此Markdown行开始您的帖子,以确保正确列出该帖子:
#[year] - [language name]
例如:
#1991 - Python
语言名称可能在链接中(它将与答案列表中的链接相同):
#1991 - [Python](https://www.python.org/)
不遵循此格式的答案,或者不允许使用的年份,或者来自过去五年来已经回答过的用户的答案都标记为无效。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>$(function(){function e(e,r){var a="https://api.stackexchange.com/2.2/questions/48476/answers?page="+e.toString()+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter=!YOKGPOBC5Yad160RQxGLP0r4rL";$.get(a,r)}function r(e){if(e.items.forEach(function(e){var r=e.link,a=e.owner.display_name,i=e.body.match(/<h1\b[^>]*>(\d{4}) - (.*?)<\/h1>/);if(i&&i.length>=3)var h=parseInt(i[1]),u=i[2];h&&u&&n>=h&&h>=t&&(!d.hasOwnProperty(e.owner.user_id)||d[e.owner.user_id]-h>=p)?(d[e.owner.user_id]=h,h==t&&--t,o.hasOwnProperty(h)||(o[h]=[]),o[h].push({language:u,user:a,link:r,score:e.score+(n-h)/2})):s.push(' <a href="'+r+'">'+a+"</a>")}),e.has_more)runQuery(++a,r);else{for(var i=n,h=[];o.hasOwnProperty(i);){for(var u=$("<tr>").append($("<td>").text(i.toString())),l=$("<td>"),c=$("<td>"),g=$("<td>"),f=0;f<o[i].length;f++){var v=o[i][f];l.append(v.language),c.append($("<a>").html(v.user).attr("href",v.link)),g.append(v.score),f+1<o[i].length&&(l.append("<br><br>"),c.append("<br><br>"),g.append("<br><br>"))}u.append(l).append(c).append(g),h.push(u),--i}$("#answers").find("tbody").append(h),s.length>0?$("#invalid").append(s):$("#invalid").remove()}}var a=1,n=2015,t=n-1,p=5,o={},s=[],d={};e(1,r)})</script><style>html *{font-family: Helvetica, Arial, sans-serif;}table{border: 4px solid #a4a; border-collapse: collapse;}th{background-color: #a4a; color: white; padding: 8px;}td{border: 1px solid #a4a; padding: 8px;}div{font-size: 75%;}</style><table id='answers'> <tr> <th>Year</th> <th>Language</th> <th>User (answer link)</th> <th>Score</th> </tr></table><div id='invalid'><br>Invalid Answers:</div>