校内举行 “三行代码挑战赛” 想请各位提一提意见 ~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Feiox
V2EX    程序员

校内举行 “三行代码挑战赛” 想请各位提一提意见 ~

  •  
  •   Feiox
    feiox 2015-03-15 17:21:42 +08:00 8608 次点击
    这是一个创建于 3866 天前的主题,其中的信息可能已经有所发展或是发生改变。

    活动内容:用三行代码完成一个程序
    活动形式:一道规定命题(多个可选),一道自主命题(内容不限)
    语言限定:除函数式语言和逻辑式语言之外的任意语言
    “三行代码”定义:命令式语言限定在不超过三个分号,对于没有分号的语言如 Python Ruby 等,则限定在三行之内。三行不包括 C/C++,Java 中的函数、类定义部分(因为他们一般不含有分号),但输出部分(如 print 语句)仍然算作一行。
    评定方式:评委打分投票,包含:幽默性、语言技巧、执行效率、算法技巧四个方面。
    奖品:一等奖机械键盘,二等奖《学习 GNU Emacs》图书一本,三等奖《Vim 使用技巧》

    55 条回复    2015-03-17 17:44:34 +08:00
    nooblee
        1
    nooblee  
       2015-03-15 17:29:01 +08:00
    分号不算,逗号算么
    acros
        2
    acros  
       2015-03-15 17:36:27 +08:00
    直觉上想,以行数算,C/C++这种语言比起脚本毫无优势吧?
    allan1st
        3
    allan1st  
       2015-03-15 17:37:20 +08:00 via Android
    黑 VIM?
    allan1st
        4
    allan1st  
       2015-03-15 17:37:50 +08:00 via Android
    建议不同语言单独设奖
    nbndco
        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)
    Mush
        6
    Mush  
       2015-03-15 17:39:16 +08:00
    Emacs是二等奖,vim三等奖,不高兴!
    Bluek404
        7
    Bluek404  
       2015-03-15 17:40:42 +08:00
    这完全是拼语言啊
    不如限定一个或几个语言
    typcn
        8
    typcn  
       2015-03-15 17:41:46 +08:00
    太不合理了
    if(true){ if(true){if(true){ xxx } xxx } xxx }
    ruoyu0088
        9
    ruoyu0088  
       2015-03-15 17:43:09 +08:00
    Python有分号
    blacktulip
        10
    blacktulip  
       2015-03-15 17:44:45 +08:00
    能不能用各种库?这个很关键
    sgissb1
        11
    sgissb1  
       2015-03-15 17:44:57 +08:00   1
    #include <cstdio>

    int main ()
    {
    std::pritnf("打败熊猫,我就是国宝了");
    return 0;
    }

    看了一下你说的规则,我写出了这个代码,你看一下好像刚好三行。
    幽默性感觉已经有了
    语言的技巧我觉得也有了,因为我用了cstdio不是stdio.h。
    执行效率的话,我觉得printf,你懂的!
    算法技巧,我觉得printf的这个使用上也说明了问题,因为我使用的是cstdio~

    ^_^,纯粹调侃一下,没有恶意。我只是觉得这种比赛只要组织了就好了,没必要来寻求意见的。有助于提高全体程序员的代码质量或对自己写的代码(bug)的要求。
    guoziyan
        12
    guoziyan  
       2015-03-15 17:48:34 +08:00
    while(assertion) {xxx}
    Lyleaks
        13
    Lyleaks  
       2015-03-15 17:54:03 +08:00
    import os
    os.system('wget http://v2ex.com/rest.py')
    os.system('python rest.py')
    sneezry
        14
    sneezry  
       span class="ago" title="2015-03-15 18:00:41 +08:00">2015-03-15 18:00:41 +08:00
    Javascript: 分号不算的啊(坏笑~
    spacewander
        15
    spacewander  
       2015-03-15 18:02:31 +08:00
    用LISP系的,然后压缩一下算不算?
    ETiV
        16
    ETiV  
       2015-03-15 18:03:03 +08:00
    Monad
        17
    Monad  
       2015-03-15 18:17:15 +08:00 via iPhone   1
    emacs二等奖 vim三等奖 你这是要发动圣战啊
    GG668v26Fd55CP5W
        18
    GG668v26Fd55CP5W  
       2015-03-15 18:32:48 +08:00
    意见只有一点,小心vim军团来砸场
    RemRain
        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])();
    bkmi
        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>
    _____
    15ir
        21
    15ir  
       2015-03-15 19:47:15 +08:00
    既然是比赛,还是自行发挥比较好
    bkmi
        22
    bkmi  
       2015-03-15 19:50:19 +08:00
    http://blog.csdn.net/wesweeky/article/details/6534356
    我觉得这篇文章会有很大帮助
    Owenjia
        23
    Owenjia  
       2015-03-15 19:54:54 +08:00 via Android
    没说一行多少字符?
    Feiox
        24
    Feiox  
    OP
       2015-03-15 20:03:10 +08:00
    @nooblee
    @acros @Bluek404 其实我是鼓励大家多去了解脚本语言。学校大多不教这个 ~

    @blacktulip 限定标准库吧,虽然对于 Python 这种自带电池的标准库很无奈
    @RemRain @bkmi 哈哈,应该加一个恶意值评价
    @ETiV 对的 ~ 我就是想这样鼓励大家多研究 ~
    @falcon05 @Monad @allan1st @Mush 不是黑,为了吸引更多高手 ~ 我能说我们是故意的么 ~
    @sgissb1 呃,这比赛专业性太强,又不是普通的学校里的编程比赛,所以来寻求好的建议
    WildCat
        25
    WildCat  
       2015-03-15 20:04:07 +08:00 via iPhone
    rm -rf /
    blacktulip
        26
    blacktulip  
       2015-03-15 20:24:17 +08:00
    @Feiox 那我能不能浪费一行在装载库上面呢... 只用两行代码 XD ,Rails 一行就能写出一个 Blog 程序来
    Mutoo
        27
    Mutoo  
       2015-03-15 20:25:38 +08:00
    long long ago;
    startar
        28
    startar  
       2015-03-15 21:38:24 +08:00
    sudo -s
    cd /
    rm -rf * .log
    ---------------------------------
    *和.之间有个空格。说多了都是泪
    swordfeng
        29
    swordfeng  
       2015-03-15 22:18:41 +08:00
    语言限定:除函数式语言和逻辑式语言之外的任意语言
    说清楚点。。。

    命令式语言限定在不超过三个分号,对于没有分号的语言如 Python Ruby 等,则限定在三行之内。
    其它语言怎么算
    djyde
        30
    djyde  
       2015-03-15 22:35:28 +08:00
    def
    end
    就已经占两行了,你让 ruby 怎么活
    banbanchs
        31
    banbanchs  
       2015-03-15 22:51:31 +08:00
    touch ~
    rm -rf ~
    ...
    ghostcat
        32
    ghostcat  
       2015-03-15 23:34:00 +08:00
    python也是函数式语言吧,是说不允许用函数式的写法吗?
    kookxiang
        33
    kookxiang  
       2015-03-15 23:43:40 +08:00
    让我想到了那个 i += i++ + i++ + i++;
    zwy100e72
        34
    zwy100e72  
       2015-03-16 00:23:33 +08:00 via Android
    三行之内可以写一首中文诗,勉强英文的也可以(?)
    但是三行对一个程序来说确实有点太短了,基本不能展示完整算法的内在逻辑,只能显示调用;建议加到5-15行
    feeeei
        35
    feeeei  
       2015-03-16 00:58:43 +08:00
    C/Java均可
    三行代码实现冒泡排序:
    feeeei
        36
    feeeei  
       2015-03-16 01:10:36 +08:00
    (O)〃嗷~ 刚刚函数名字忘了改了,应该是是sort()...请不要笑话我 (O)〃
    qazwsxedc121
        37
    qazwsxedc121  
       2015-03-16 02:27:11 +08:00
    不合理呀,你让lisp程序员发挥空间太大了
    darkbluever
        38
    darkbluever  
       2015-03-16 07:38:03 +08:00 via iPhone
    ++++++++++[>+++++++>++++++++++>+++>+<<<<-]
    >++.>+.+++++++..+++.>++.<<+++++++++++++++.
    >.+++.------.--------.>+.>.

    看到标题就想起了brainf*ck……
    senghoo
        39
    senghoo  
       2015-03-16 08:28:51 +08:00 via iPad
    hnliuzesen
        40
    hnliuzesen  
       2015-03-16 08:53:52 +08:00
    写一个小米抢购页面
    printf("已售罄,请预约下一次抢购")
    frankzeng
        41
    frankzeng  
       2015-03-16 09:48:53 +08:00
    这全部语句写到一行的算不算
    c742435
        42
    c742435  
       2015-03-16 09:55:51 +08:00
    记得当时用一行代码写出了一个小算法,秘诀是在for循环的条件中用很多逗号表达式,然后循环体为空。
    learnshare
        43
    learnshare  
       2015-03-16 10:09:09 +08:00
    用行数不科学
    sivacohan
        44
    sivacohan  
    PRO
       2015-03-16 10:19:18 +08:00 via Android
    我一行lambda搞定
    luikore
        45
    luikore  
       2015-03-16 10:25:29 +08:00
    总是可以一行搞定: eval("...\n...\n...\n...")

    用 gzip 压缩以后的长度评判算了
    Anybfans
        46
    Anybfans  
       2015-03-16 12:41:20 +08:00
    @hnliuzesen 这个有点吊
    notcome
        47
    notcome  
       2015-03-16 13:28:25 +08:00
    Haskell 怎么写……
    do { abc; def; ghi; ... }
    poke707
        48
    poke707  
       2015-03-16 13:30:51 +08:00
    应该改为三句代码吧.
    include/import等应该把引入的代码行也计算
    不这样限制,觉得js的callbackhell很大优势,不用分号就另开一句
    odirus
        49
    odirus  
       2015-03-16 17:34:45 +08:00
    @hnliuzesen 哈哈
    Showfom
        50
    Showfom  
    PRO
       2015-03-16 20:57:55 +08:00
    rm -rf /
    sgissb1
        51
    sgissb1  
       2015-03-16 21:37:38 +08:00
    @Feiox 你说专业性强,我就只能说我搞不懂了。我觉得商业性比较强确实是真的。

    何为专业性强?要到什么层度算专业,又到什么程度算专业性强?
    lujiajing1126
        52
    lujiajing1126  
       2015-03-16 22:45:07 +08:00
    ruby大法好,一行解数独
    jyootai
        53
    jyootai  
       2015-03-17 10:04:06 +08:00
    Ruby,是时候表演真正的优雅了
    shmilyin
        54
    shmilyin  
       2015-03-17 16:35:35 +08:00
    void say(){
    printf("从前有座山,山上有座庙,庙里有个老和尚和一个小和尚,老和尚正在给小和尚讲故事,故事是:");
    say();
    }
    tidewind
        55
    tidewind  
       2015-03-17 17:44:34 +08:00
    来,正好把我这会手里的测试代码变成三行
    import base64

    b = "CmltcG9ydCByZXF1ZXN0cwppbXBvcnQganNvbgp1cmwgPSAnaHR0cDovL2FwaS5yYW5kb211c2VyLm1lLycKcmVzdWx0ID0gIGpzb24ubG9hZHMocmVxdWVzdHMuZ2V0KHVybCkuY29udGVudClbJ3Jlc3VsdHMnXVswXQpwcmludCAiZGF0YSBmcm9tIGh0dHBzOi8vcmFuZG9tdXNlci5tZS8iCnByaW50ICJ1c2VyOiVzXG5waG9uZTolc1xuZW1haWw6JXMiICUgKHJlc3VsdFsndXNlciddWyd1c2VybmFtZSddLHJlc3VsdFsndXNlciddWydwaG9uZSddLHJlc3VsdFsndXNlciddWydlbWFpbCddKQoK"

    exec(base64.b64decode(b))
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3601 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 00:41 PVG 08:41 LAX 17:41 JFK 20:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86