Cla*_*diu 29 code-golf palindrome rosetta-stone
目标:任何语言.最小的函数,它将返回一个字符串是一个回文.这是我的Python:
R=lambda s:all(a==b for a,b in zip(s,reversed(s)))
50个字符.
接受的答案将是当前最小的答案 - 当发现较小的答案时,这将会改变.请指定您的代码所在的语言.
Jim*_*mmy 49
J中有7个字符:不确定这是不是最好的方式,我对J有点新:)
p=:-:|.
解释:|.反转输入. - :比较.操作数是隐含的.
p 'radar'
1
p 'moose'
0
Men*_*boy 42
这是我的; 它是用我发明的特定领域语言编写的,叫做'回文'.
p
编辑:不太轻浮的版本(i386 asm,AT&T语法)
xor %eax, %eax
mov %esi, %edi
#cld    not necessary, assume DF=0 as per x86 ABI
repne scasb
scan:
    dec %edi
    cmpsb
    .byte 0x75, 6    #jnz (short) done
    dec %edi
    cmp %esi, %edi
    .byte 0x72, -9    #jb (short) scan
inc %eax
done:
16个字节,字符串指针在ESI中,结果在EAX中.
Joe*_*e Z 37
可悲的是,我无法理解千言万语......

(LabVIEW.是的,他们会在这里发布任何流浪汉帖子;)
ADE*_*Ept 29
Haskell,15个字符:
p=ap(==)reverse
更易读的版本,16个字符:
p x=x==reverse x
Ode*_*ode 12
使用C#和LINQ运算符:
public bool IsPalindrome(string s)
{
    return s.Reverse().SequenceEqual(s);
}
如果你把Reverse视为作弊,你可以通过减少来完成整个事情:
public bool IsPalindrome(string s)
{
    return s.Aggregate(new StringBuilder(),
                       (sb, c) => sb.Insert(0, c),
                       (sb) => sb.ToString() == s);
}
Rob*_*ble 10
Perl(27个字符):
sub p{$_[0]eq reverse$_[0]}
Ruby(24个字符):
def p(a)a==a.reverse end
73清洁,可读,用java编写的字符
boolean p(String s){return s.equals(""+new StringBuffer(s).reverse());}
和平:)
无意义的Haskell版本(15个字符,但是除非你包含Control.Arrow和Control.Monad并忽略单态限制,否则它不会真正起作用):
p=ap(==)reverse
(equal p (reverse p))
口齿不清.18个字符.
好的,这是一个特例.如果直接输入到lisp解释器并且已经定义了p,这将起作用.
否则,这是必要的:
(defun g () (equal p (reverse p)))
28个字符.
Lua的目标更多是可读性而不是简洁性,但却是一个诚实的37个字符:
function p(s)return s==s:reverse()end
变体,只是为了好玩(相同的大小):
p=function(s)return s==s:reverse''end
JavaScript版本更冗长(55个字符),因为它没有字符串反转功能:
function p(s){return s==s.split('').reverse().join('')}
我会更进一步:完整的c代码,编译和去.
90个字符
main(int n,char**v){char*b,*e;b=e=v[1];while(*++e);for(e--;*b==*e&&b++<e--;);return b>e;}