Anarchy Golf 948. Convert Radians To Degrees
浮動小数点数が絡むとesolangが軒並み死ぬのでだめ。
ruby
私 37byte
http://golf.shinh.org/reveal.rb?Convert+Radians+to+Degrees/kimiyuki_1460938908
$<.map{|l|p (l.to_f*57.2957).round 1}
1byte削れず。Kernel.#loop
1を知らなかったのが敗因。
teebeeさん, xsotさん, mitchsさん 36byte
- http://golf.shinh.org/reveal.rb?Convert+Radians+to+Degrees/teebee_1461023428
- http://golf.shinh.org/reveal.rb?Convert+Radians+to+Degrees/xsot_1461897566
loop{puts"%.1f".%eval(gets)*57.2957}
%
をmethodとして呼んで順序を制御するテク。
loop{p (eval(gets)*57.2957).round 1}
きれい。in
eval’: no implicit conversion of nil into String (TypeError)で止めてるので、
gets.to_f`として1byte削るのはだめ。
perl
29byte
printf"%.1f
",$_*57.2957for<>
私を含めて$10$人全員がこれを提出。
57.2957
とfor
との間に空白要らないのはrubyでもそう。haskellですら同様のことが可能だが、syntax highlighterはみな間違える。lexerの都合か。
c
64byte
main(float x){for(;~scanf("%f",&x);)printf("%.1f\n",x*57.2957);}
私を含めて$10$人がこれを提出。
dc
tailsさん 30byte
http://golf.shinh.org/reveal.rb?Convert+Radians+to+Degrees/tails_1462155142
?[rB45.91*1+2/A~rn46Ppr?rdx]dx
他が軽かったのでついでに見てみたら、正規表現を微分でもしてるみたいな見ためで興味を引かれた。 正直今までdcはただの電卓だと思っていた。
解読
#!/usr/bin/env dc
?
[
r
B45.91 * 1 + 2 / A ~ r
n 46 P p
r ? r d x
]
d x
- dc is a stack alnguage
?
reads a line and execute it[ ... ]
pushs the contents as a string objectd
duplicatesx
executes the string- in this case, before executes the code string, duplicates it for the loop/recursion
r
reverses/swapsB45.91
,1
,2
,A
are numbers.- example:
1AB.0C
becomes a number $211.12 = 1 \cdot 100 + 10 \cdot 10 + 11 \cdot 1 + 0 \cdot 0.1 + 13 \cdot 0.01$.
- example:
~
is a divmodn
prints value without newline, then popP
prints a number as an ascii codep
prints value with newline, without poping
reference: https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html
計算式の具体的な中身は面倒なので読んでないです。
,hr>