首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LiveScript中打高尔夫球的技巧

在LiveScript中打高尔夫球的技巧
EN

Code Golf用户
提问于 2014-05-06 18:41:10
回答 7查看 500关注 0票数 4

你对在LiveScript打高尔夫球有什么一般的建议?我正在寻找一些可以应用于代码高尔夫问题的想法,这些问题至少在一定程度上是针对LiveScript的(例如,“删除注释”不是一个答案)。请给每一个答复发一条小费。

EN

回答 7

Code Golf用户

发布于 2014-08-24 23:25:52

利用咖喱函数和Prelude.ls

如果该函数已经被匆忙处理,则其总体上可能会更短。另外,Prelude.ls是标准库,它的功能通常非常有用。这意味着,除非另有规定,这个库是100%允许的。示例:

代码语言:javascript
复制
f=->[1 to &0].reduce (*) # space required
f=->product [1 to &0]

s=(.reduce (+))
s=sum                    # better yet, avoid defining this when possible

d=(.map (*2))
d=map (*2)               # Sometimes even shorter than native methods

r=->&0.reduce (-&1-)
r=->fold1 (-&1-),&0      # Equal if starting value is required.

a.=sort!
a=sort a                 # sometimes the same length

a.=sort ->&1.length-&0.length # space before arrow required
a.=sort over (-),(.length)    # slightly more functional
a=sortBy (.length)            # specific builtin, always prefer CamelCase
票数 2
EN

Code Golf用户

发布于 2014-08-24 22:47:11

.n etc [n]\n etc ['n']

这不适用于计算的索引和成员,但是对于静态的索引和成员,它可以减少字节数。示例:

代码语言:javascript
复制
f[0]
f.0

f['str']
f\str

f['str with spaces']
f'str with spaces'

这将不适用于其他文字,如RegExps、booleans、nullvoid等。

票数 1
EN

Code Golf用户

发布于 2014-08-24 22:58:34

在可能时使用部分函数(酌情使用)

部分函数可以大大缩短许多操作。示例:

代码语言:javascript
复制
f=->it^2
f=(^2)

s=->&0.length==&1.length
s=over(==),(.length)

不过,情况并不总是更好。示例:

代码语言:javascript
复制
# [[a, b], [c, d], [e, f]] -> (a+b)*(c+d)*(e*f)
f=(|>map sum|>product)
f=product map sum # these are actually curried
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/26715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档