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

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

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

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

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

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

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

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

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

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

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

    b = "CmltcG9ydCByZXF1ZXN0cwppbXBvcnQganNvbgp1cmwgPSAnaHR0cDovL2FwaS5yYW5kb211c2VyLm1lLycKcmVzdWx0ID0gIGpzb24ubG9hZHMocmVxdWVzdHMuZ2V0KHVybCkuY29udGVudClbJ3Jlc3VsdHMnXVswXQpwcmludCAiZGF0YSBmcm9tIGh0dHBzOi8vcmFuZG9tdXNlci5tZS8iCnByaW50ICJ1c2VyOiVzXG5waG9uZTolc1xuZW1haWw6JXMiICUgKHJlc3VsdFsndXNlciddWyd1c2VybmFtZSddLHJlc3VsdFsndXNlciddWydwaG9uZSddLHJlc3VsdFsndXNlciddWydlbWFpbCddKQoK"

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