やはり戦争しかないようです
はい、おはようございます。あらゆる言語で「Hello World」書いちゃうマンの僕です。そんなわけで今日も「Hello World」を書いていきましょう。
そうしたわけで本日はこれやっていきます。コードウォーです。そぅ……戦争……。第三次大戦の開幕なのです。
www.codewars.com
はい、これが何かというとコーディングスキルとかが図れるやつです。詳しいことはよくわかりません。ちなみに英語サイトです。
んでこいつですがまず問題を解かないと登録すらさせてもらえません。登録条件は下記言語から選んで掛け算問題を解けっていうやつです。


ということで登録して、登録用問題のやつを全部解いてみた。
対応言語は以下の通り。
・Brainfu*k
・C
・Clojure
・CoffeeScript
・C++
・Crystal
・C#
・Dart
・Elixir
・Elm
・Erlang
・Fortlan
・F#
・Go
・Groovy
・Haslell
・Java
・JavaScript
・Julia
・Kotilin
・Lua
・NASM
・Nim
・Objective-C
・OCaml
・PHP
・PowerShell
・PureScript
・Python
・R
・Reason
・Ruby
・Rust
・Scala
・Shell
・Solidity
・SQL
・Swift
・TypeScript
以上です。いくつか聞いたことない言語あるけど終わらせたぜ!!
完走した感想
楽勝でしょうとか舐めてかかったら痛い目を見ました。最近、型のない言語触りすぎてその辺り結構怒られました(笑)。あとマイナー言語系の情報入手が鬼門だった。みんなマイナー言語だとガチで『「Hello World」出力して感動しました!』とかいう情報しか書かないんだもん。
言語別感想
・Brainf*ck 参考:The Brainfuck Programming Language
みんな大好き難読言語。まず初見で読めない。ヒントらしきものが付随してるけど読めない。なので一から実装した。掛け算するだけのくせに唯一ループ使って解いた。
・C 参考:Open Standards
C言語問題。第二引数になぜかcharを取る問題。特に問題はなかった。
・Clojure 参考:Clojure
Lisp風関数型言語。ループを使う問題でなければ文法の問題で特に問題なし。
・CoffeeScript 参考:CoffeeScript
AltJSの一角Coffeeさん。巷では書きやすいって言われているが個人的にあのインデントは苦手。
・C++ 参考:Standard C++
完全に理解した。C問題と同じノリでとけるやつ。こちらは第二引数がintなので優しい。
・Crystal 参考:The Crystal Programming Language
Rubyっぽくかける何か。公式のアイコンはさわるとくるくるして遊べるので一見の価値あり(?)。この問題だとRubyとの違いが見いだせなかった。
・C# 参考:C# リファレンス | Microsoft Docs
WindowsアプリつくったりUnityとかで使われる言語。見た目はかなり素直なので書きやすい。
・Dart 参考:Dart programming language | Dart
Googleによって作られた言語。僕この言語知らない。JavaScriptっぽい手ごたえ。
・Elixir 参考:Elixir
Rubyっぽく書けると言われている言語。昔ちょっといじってた時はErlang味をすごい感じてRubyじゃないじゃんとかなった記憶がある。問題の方は普通の四則演算問題なのでRubyっぽく解けます。
・Elm 参考:home
関数型言語 Elm。それ以上の情報は僕は知らない。国内での技術情報は大体ヤギに汚染されてて使い物にならないイメージしかない。
・Erlang 参考:Erlang Programming Language
アーランと読むらしいが僕はエルランと読んでる。耐障害性に優れているので通信をさばく人に人気。書き方が関数型の独特な感じがして僕はまだ慣れない。
・Fortlan 参考:WG5 Fortran Standards Home
意外と情報を入手するのに苦労した老舗言語。はじめて書いてみたけど書き心地がCOBOL味を感じる。
・F# 参考:F# Software Foundation
関数型言語と言われている。情報が全然入手できないけど、なんかすっきり書ける。
・Go 参考:The Go Programming Language
僕の中では書きやすくなったC言語という認識の言語。前々から手を出してる言語なので、特に言うことはない。
・Groovy 参考:The Apache Groovy programming language
触ったことなかったけどもJava+Rubyっぽい手ごたえ。Javaとの連携とかが特徴らしいが、普段からJavaを書いてないのもあって何に使われてるのかさっぱりわからない。
・Haskell 参考:Haskell Language
関数型言語 Haskell。インターネットにいる強い人がオススメしてくるやばい言語のイメージしかない。関数型言語書き方よくわかってないんだけど、問題解いた後他人のコード読んで「あーこう書くんだ」って参考になりますね。
・Java 参考:java.com: あなたとJava
;
忘れて一敗した。他は特に言うことがない。メジャー言語の感想なんてそんなもんです。
・JavaScript 参考:JavaScript | MDN
特に何も言うことがない……。
・Julia 参考:The Julia Language
つい最近、おもむろに入門した高速Python。思ってたより書き方はPythonじゃなかった……。
・Kotilin 参考:Kotlin Programming Language
こっとりーん!!最近触ってない……。Android開発でよくみかける言語。
・Lua 参考:The Programming Language Lua
Web言語の道を外れると意外と触ることの多いLua。
・NASM 参考:NASM
アセンブリ言語。mul arg
の挙動が未だによくわからない。
・Nim 参考:Nim programming language | Nim
触ったことない謎の言語。感触としてはScalaっぽい。何に使われているのかは知らない。
・Objective-C 参考:About Objective-C
iOS開発で使われる言語。そうなんだ、じゃあ僕はSwift使うから……。問題といてみても特徴はよくわかんかった。
・OCaml 参考:OCaml – OCaml
フランス発祥言語。前々から手を出そうと思いつつも何に使うのかわかんないから放置していた言語。
・PHP 参考:PHP: Hypertext Preprocessor
変数が$
のやつ。返り値の型を指定して書くのがPHP7っぽい書き方なんだってのを学んだ。
・PowerShell 参考:PowerShell Team · GitHub
MSのつくったやつ。シェルっぽく書ける何か。ところで、公式サイトいってみたら「We're sorry, the page you requested cannot be found.」とか言われた……。もうまじむり……。リスカしょ……。
・PureScript 参考:PureScript
純粋関数型AltJS。ぶっちゃけこれがなんなのかよくわからない。他の関数型言語の問題が解ければ並行して解けると思われ。
・Python 参考:Welcome to Python.org
蛇言語。特に何も話すことがない。
・R 参考:R: The R Project for Statistical Computing
統計特化言語 R。データサイエンスな資料はこっちの方が質が良いらしい。
・Reason 参考:Reason · Reason を使うと、JavaScript & OCaml の両方のエコシステムを活用しながら、単純、高速かつ高品質な型安全コードを書くことができます。
知らない言語。「JavaScript & OCaml の両方のエコシステムを活用しながら、単純、高速かつ高品質な型安全コードを書くことができます。」とのことです。
・Ruby 参考:オブジェクト指向スクリプト言語 Ruby
Matzを讃えよ。ネット上にたくさんサンプルあるし特に話すこともない。今回の問題も単純だしね。
・Rust 参考:Rust programming language
組込とかやってる激強マンがオススメしてくる言語のイメージ。今まで使い方よくわかってなかったけど、なんとなく使い方がわかってきた。
・Scala 参考:The Scala Programming Language
新世代 Java言語。良さみはわからない。Javaよりかなりシンプルにかけるのが特徴だと思ってる。
・Shell
CLIで使われているやつ。=
前後にスペースいれると事故る言語って認識。
・Solidity 参考:Solidity — Solidity 0.4.24 documentation
僕の知らない言語。Ethereumの情報がセットで出てくるんだけどそういうやつなの?
・SQL
君なんか他のプログラミング言語と違くない?select文で引っ張ってくれば解けます。
・Swift 参考:https://swift.org/
iOS用言語。ちゃんとがっつり触らないとなぁと思いつつも、ちょこちょこいじったりいじらなかったりして終わってる。どうしようかね……。
・TypeScript 参考:TypeScript - JavaScript that scales.
AltJSの一つ。ほぼJavaScriptという認識。導入するメリットは未だよくわかってない。
後半になるにつれて問題の感想を言っていない気がする……。まあそんな感じです。とりあえずやってみると、関数型言語ちょろちょろ触ることになるので、こんなんでも割と学びはあるような気がした(気のせい)。まあ、こんなことやって遊んでいるよりもちゃんとアルゴリズム覚えろって話なんですよね……。またこういうの登録したままで放置するんだろうな……。これも月末進捗報告いきですかね……。