新しく言語を習得するときにロゼッタコード(rosettacode)を参考にする
本家はこちら
タイトルの通りだが、新しく言語を習得するときは、チュートリアルもそうなんだが、結構rosettacodeで逆引きして、へぇーこーゆー風に書くんだーみたいなのをみてみたりする
タスクを選ぶ
もちろん英語サイトなので、アレルギーがある人には見た瞬間「うっ」ってなるかもですけど、中身は簡単 下記のページで参考にしてみたいタスクをクリックし、言語ごとに実装例がかいてあるので、それを参考にする http://www.rosettacode.org/wiki/Category:Programming_Tasks
fizzbuzz
例えばみんなだいすきfizzbuzzとかもある http://www.rosettacode.org/wiki/FizzBuzz
Nimで書くとこんな感じ
for i in 1..100:
if i mod 15 == 0:
echo("FizzBuzz")
elif i mod 3 == 0:
echo("Fizz")
elif i mod 5 == 0:
echo("Buzz")
else:
echo(i)
Swiftで書くとこんな感じ
for i in 1...100 {
switch (i % 3, i % 5) {
case (0, 0):
print("FizzBuzz")
case (0, _):
print("Fizz")
case (_, 0):
print("Buzz")
default:
print(i)
}
}
Luaで書くとこんな感じ
word = {"Fizz", "Buzz", "FizzBuzz"}
for i = 1, 100 do
print(word[(i % 3 == 0 and 1 or 0) + (i % 5 == 0 and 2 or 0)] or i)
end
Adaで書くとこんな感じ
with Ada.Text_IO; use Ada.Text_IO;
procedure Fizzbuzz is
begin
for I in 1..100 loop
if I mod 15 = 0 then
Put_Line("FizzBuzz");
elsif I mod 5 = 0 then
Put_Line("Buzz");
elsif I mod 3 = 0 then
Put_Line("Fizz");
else
Put_Line(Integer'Image(I));
end if;
end loop;
end Fizzbuzz;
まぁこのように結構な言語数がある。実際にこのコードがベスト・プラクティスなわけではないが、参考にはなる。
sha-256
nimでsha-256でハッシュしたいときに、さっと見られるので、便利
import strutils
const SHA256Len = 32
proc SHA256(d: cstring, n: culong, md: cstring = nil): cstring {.cdecl, dynlib: "libssl.so", importc.}
proc SHA256(s: string): string =
result = ""
let s = SHA256(s.cstring, s.len.culong)
for i in 0 .. < SHA256Len:
result.add s[i].BiggestInt.toHex(2).toLower
echo SHA256("Rosetta code")
まか書き方が冗長だったりすることもあるかもだが、それは自分で直せばいいし、あくまで参考程度にみるには結構重宝するサイトだと思う