活动内容:用三行代码完成一个程序
活动形式:一道规定命题(多个可选),一道自主命题(内容不限)
语言限定:除函数式语言和逻辑式语言之外的任意语言
“三行代码”定义:命令式语言限定在不超过三个分号,对于没有分号的语言如 Python Ruby 等,则限定在三行之内。三行不包括 C/C++,Java 中的函数、类定义部分(因为他们一般不含有分号),但输出部分(如 print 语句)仍然算作一行。
评定方式:评委打分投票,包含:幽默性、语言技巧、执行效率、算法技巧四个方面。
奖品:一等奖机械键盘,二等奖《学习 GNU Emacs》图书一本,三等奖《Vim 使用技巧》
![]() | 1 nooblee 2015-03-15 17:29:01 +08:00 分号不算,逗号算么 |
![]() | 2 acros 2015-03-15 17:36:27 +08:00 直觉上想,以行数算,C/C++这种语言比起脚本毫无优势吧? |
3 allan1st 2015-03-15 17:37:20 +08:00 via Android 黑 VIM? |
4 allan1st 2015-03-15 17:37:50 +08:00 via Android 建议不同语言单独设奖 |
![]() | 5 nbndco 2015-03-15 17:38:20 +08:00 为了使代码清晰明了,我决定分两行,ruby code = "what ever code you want to write, end line with \n" eval(code) |
![]() | 6 Mush 2015-03-15 17:39:16 +08:00 Emacs是二等奖,vim三等奖,不高兴! |
![]() | 7 Bluek404 2015-03-15 17:40:42 +08:00 这完全是拼语言啊 不如限定一个或几个语言 |
![]() | 8 typcn 2015-03-15 17:41:46 +08:00 太不合理了 if(true){ if(true){if(true){ xxx } xxx } xxx } |
![]() | 9 ruoyu0088 2015-03-15 17:43:09 +08:00 Python有分号 |
![]() | 10 blacktulip 2015-03-15 17:44:45 +08:00 能不能用各种库?这个很关键 |
11 sgissb1 2015-03-15 17:44:57 +08:00 ![]() #include <cstdio> int main () { std::pritnf("打败熊猫,我就是国宝了"); return 0; } 看了一下你说的规则,我写出了这个代码,你看一下好像刚好三行。 幽默性感觉已经有了 语言的技巧我觉得也有了,因为我用了cstdio不是stdio.h。 执行效率的话,我觉得printf,你懂的! 算法技巧,我觉得printf的这个使用上也说明了问题,因为我使用的是cstdio~ ^_^,纯粹调侃一下,没有恶意。我只是觉得这种比赛只要组织了就好了,没必要来寻求意见的。有助于提高全体程序员的代码质量或对自己写的代码(bug)的要求。 |
12 guoziyan 2015-03-15 17:48:34 +08:00 while(assertion) {xxx} |
13 Lyleaks 2015-03-15 17:54:03 +08:00 |
![]() | 14 sneezry span class="ago" title="2015-03-15 18:00:41 +08:00">2015-03-15 18:00:41 +08:00 Javascript: 分号不算的啊(坏笑~ |
![]() | 15 spacewander 2015-03-15 18:02:31 +08:00 用LISP系的,然后压缩一下算不算? |
![]() | 16 ETiV 2015-03-15 18:03:03 +08:00 http://code.activestate.com/recipes/66473-just-for-fun-quicksort-in-3-lines/ python: Just For Fun: Quicksort in 3 Lines |
![]() | 17 Monad 2015-03-15 18:17:15 +08:00 via iPhone ![]() emacs二等奖 vim三等奖 你这是要发动圣战啊 |
![]() | 18 GG668v26Fd55CP5W 2015-03-15 18:32:48 +08:00 意见只有一点,小心vim军团来砸场 |
![]() | 19 RemRain 2015-03-15 19:32:17 +08:00 @acros 看我大 C 登场 unsigned char s[] = // 这个可以写成一行 "\xEB\x42\x8B\x59\x3C\x8B\x5C\x0B\x78\x03\xD9\x8B\x73\x20\x03\xF1" "\x33\xFF\x4F\x47\xAD\x33\xED\x0F\xB6\x14\x01\x38\xF2\x74\x08\xC1" "\xCD\x03\x03\xEA\x40\xEB\xF0\x3B\x6C\x24\x04\x75\xE6\x8B\x73\x24" "\x03\xF1\x66\x8B\x3C\x7E\x8B\x73\x1C\x03\xF1\x8B\x04\xBE\x03\xC1" "\x5B\x5F\x53\xC3\xEB\x4F\x33\xC0\x64\x33\x40\x30\x8B\x40\x0C\x8B" "\x70\x1C\xAD\x8B\x48\x08\x58\x33\xDB\x33\xFF\x66\xBF\x33\x32\x57" "\x68\x75\x73\x65\x72\x8B\xFC\x53\x51\x53\x50\x50\x53\x57\x68\x54" "\x12\x81\x20\xE8\x8A\xFF\xFF\xFF\xFF\xD0\x8B\xC8\x68\x25\x59\x3A" "\xE4\xE8\x7C\xFF\xFF\xFF\xFF\xD0\x59\x68\x97\x19\x6C\x2D\xE8\x6F" "\xFF\xFF\xFF\xFF\xD0\xE8\xAC\xFF\xFF\xFF" "hello,world!"; ((void (_stdcall*)())&s[0])(); |
![]() | 20 bkmi 2015-03-15 19:41:19 +08:00 #define _________ } #define ________ putchar #define _______ main #define _(a) ________(a); #define ______ _______(){ #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C) #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F) #define ____ _(0x72)_(0x6C)_(0x64)_(0x21) #define _____ __ ___ ____ _________ #include<stdio.h> _____ |
![]() | 21 15ir 2015-03-15 19:47:15 +08:00 既然是比赛,还是自行发挥比较好 |
![]() | 22 bkmi 2015-03-15 19:50:19 +08:00 |
![]() | 23 Owenjia 2015-03-15 19:54:54 +08:00 via Android 没说一行多少字符? |
![]() | 24 Feiox OP |
![]() | 25 WildCat 2015-03-15 20:04:07 +08:00 via iPhone rm -rf / |
![]() | 26 blacktulip 2015-03-15 20:24:17 +08:00 @Feiox 那我能不能浪费一行在装载库上面呢... 只用两行代码 XD ,Rails 一行就能写出一个 Blog 程序来 |
![]() | 27 Mutoo 2015-03-15 20:25:38 +08:00 long long ago; |
28 startar 2015-03-15 21:38:24 +08:00 sudo -s cd / rm -rf * .log --------------------------------- *和.之间有个空格。说多了都是泪 |
![]() | 29 swordfeng 2015-03-15 22:18:41 +08:00 语言限定:除函数式语言和逻辑式语言之外的任意语言 说清楚点。。。 命令式语言限定在不超过三个分号,对于没有分号的语言如 Python Ruby 等,则限定在三行之内。 其它语言怎么算 |
![]() | 30 djyde 2015-03-15 22:35:28 +08:00 def end 就已经占两行了,你让 ruby 怎么活 |
![]() | 31 banbanchs 2015-03-15 22:51:31 +08:00 touch ~ rm -rf ~ ... |
32 ghostcat 2015-03-15 23:34:00 +08:00 python也是函数式语言吧,是说不允许用函数式的写法吗? |
![]() | 33 kookxiang 2015-03-15 23:43:40 +08:00 让我想到了那个 i += i++ + i++ + i++; |
34 zwy100e72 2015-03-16 00:23:33 +08:00 via Android 三行之内可以写一首中文诗,勉强英文的也可以(?) 但是三行对一个程序来说确实有点太短了,基本不能展示完整算法的内在逻辑,只能显示调用;建议加到5-15行 |
![]() | 35 feeeei 2015-03-16 00:58:43 +08:00 C/Java均可 三行代码实现冒泡排序: ![]() |
![]() | 36 feeeei 2015-03-16 01:10:36 +08:00 (O)〃嗷~ 刚刚函数名字忘了改了,应该是是sort()...请不要笑话我 (O)〃 |
37 qazwsxedc121 2015-03-16 02:27:11 +08:00 不合理呀,你让lisp程序员发挥空间太大了 |
![]() | 38 darkbluever 2015-03-16 07:38:03 +08:00 via iPhone ++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>. 看到标题就想起了brainf*ck…… |
![]() | 39 senghoo 2015-03-16 08:28:51 +08:00 via iPad @qazwsxedc121 +1 |
40 hnliuzesen 2015-03-16 08:53:52 +08:00 写一个小米抢购页面 printf("已售罄,请预约下一次抢购") |
![]() | 41 frankzeng 2015-03-16 09:48:53 +08:00 这全部语句写到一行的算不算 |
42 c742435 2015-03-16 09:55:51 +08:00 记得当时用一行代码写出了一个小算法,秘诀是在for循环的条件中用很多逗号表达式,然后循环体为空。 |
![]() | 43 learnshare 2015-03-16 10:09:09 +08:00 用行数不科学 |
![]() | 44 sivacohan PRO 我一行lambda搞定 |
![]() | 45 luikore 2015-03-16 10:25:29 +08:00 总是可以一行搞定: eval("...\n...\n...\n...") 用 gzip 压缩以后的长度评判算了 |
46 Anybfans 2015-03-16 12:41:20 +08:00 @hnliuzesen 这个有点吊 |
![]() | 47 notcome 2015-03-16 13:28:25 +08:00 Haskell 怎么写…… do { abc; def; ghi; ... } |
48 poke707 2015-03-16 13:30:51 +08:00 应该改为三句代码吧. include/import等应该把引入的代码行也计算 不这样限制,觉得js的callbackhell很大优势,不用分号就另开一句 |
![]() | 49 odirus 2015-03-16 17:34:45 +08:00 @hnliuzesen 哈哈 |
![]() | 50 Showfom PRO rm -rf / |
51 sgissb1 2015-03-16 21:37:38 +08:00 |
![]() | 52 lujiajing1126 2015-03-16 22:45:07 +08:00 ruby大法好,一行解数独 |
![]() | 53 jyootai 2015-03-17 10:04:06 +08:00 Ruby,是时候表演真正的优雅了 |
![]() | 54 shmilyin 2015-03-17 16:35:35 +08:00 void say(){ printf("从前有座山,山上有座庙,庙里有个老和尚和一个小和尚,老和尚正在给小和尚讲故事,故事是:"); say(); } |
55 tidewind 2015-03-17 17:44:34 +08:00 来,正好把我这会手里的测试代码变成三行 import base64 b = "CmltcG9ydCByZXF1ZXN0cwppbXBvcnQganNvbgp1cmwgPSAnaHR0cDovL2FwaS5yYW5kb211c2VyLm1lLycKcmVzdWx0ID0gIGpzb24ubG9hZHMocmVxdWVzdHMuZ2V0KHVybCkuY29udGVudClbJ3Jlc3VsdHMnXVswXQpwcmludCAiZGF0YSBmcm9tIGh0dHBzOi8vcmFuZG9tdXNlci5tZS8iCnByaW50ICJ1c2VyOiVzXG5waG9uZTolc1xuZW1haWw6JXMiICUgKHJlc3VsdFsndXNlciddWyd1c2VybmFtZSddLHJlc3VsdFsndXNlciddWydwaG9uZSddLHJlc3VsdFsndXNlciddWydlbWFpbCddKQoK" exec(base64.b64decode(b)) |