• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Feiox
V2EX  ›  程序员

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

  •  
  •   Feiox ·
    feiox · Mar 15, 2015 · 9105 views
    This topic created in 4089 days ago, the information mentioned may be changed or developed.

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

    55 replies    2015-03-17 17:44:34 +08:00
    nooblee
        1
    nooblee  
       Mar 15, 2015
    分号不算,逗号算么
    acros
        2
    acros  
       Mar 15, 2015
    直觉上想,以行数算,C/C++这种语言比起脚本毫无优势吧?
    allan1st
        3
    allan1st  
       Mar 15, 2015 via Android
    黑 VIM?
    allan1st
        4
    allan1st  
       Mar 15, 2015 via Android
    建议不同语言单独设奖
    nbndco
        5
    nbndco  
       Mar 15, 2015
    为了使代码清晰明了,我决定分两行,ruby
    code = "what ever code you want to write, end line with \n"
    eval(code)
    Mush
        6
    Mush  
       Mar 15, 2015
    Emacs是二等奖,vim三等奖,不高兴!
    Bluek404
        7
    Bluek404  
       Mar 15, 2015
    这完全是拼语言啊
    不如限定一个或几个语言
    typcn
        8
    typcn  
       Mar 15, 2015
    太不合理了
    if(true){ if(true){if(true){ xxx } xxx } xxx }
    ruoyu0088
        9
    ruoyu0088  
       Mar 15, 2015
    Python有分号
    blacktulip
        10
    blacktulip  
       Mar 15, 2015
    能不能用各种库?这个很关键
    sgissb1
        11
    sgissb1  
       Mar 15, 2015   ❤️ 1
    #include <cstdio>

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

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

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

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

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

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

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

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

    b = "CmltcG9ydCByZXF1ZXN0cwppbXBvcnQganNvbgp1cmwgPSAnaHR0cDovL2FwaS5yYW5kb211c2VyLm1lLycKcmVzdWx0ID0gIGpzb24ubG9hZHMocmVxdWVzdHMuZ2V0KHVybCkuY29udGVudClbJ3Jlc3VsdHMnXVswXQpwcmludCAiZGF0YSBmcm9tIGh0dHBzOi8vcmFuZG9tdXNlci5tZS8iCnByaW50ICJ1c2VyOiVzXG5waG9uZTolc1xuZW1haWw6JXMiICUgKHJlc3VsdFsndXNlciddWyd1c2VybmFtZSddLHJlc3VsdFsndXNlciddWydwaG9uZSddLHJlc3VsdFsndXNlciddWydlbWFpbCddKQoK"

    exec(base64.b64decode(b))
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 197ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.