コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

かけだしがやるすからー

結局駆け出しは何をやってもダメということが満場一致で決定されましたー笑

はい。おはようございます。僕ですとりあえず出来るところまで進めるという方針でやっている例のアレ進めていきます。まあ、以前より触る触るいってたScalaをようやくいじることにしました。



今回やったこと!

とりあえず基礎編やった。
f:id:andron:20200511191208p:plain

初回はREPL使ってなんやかんややる内容なんでちゃちゃっと確認するだけなら下のオンラインコンパイラでいじるのがいいかもしれない。
Online Compiler and Editor/IDE for Java, C/C++, PHP, Python, Perl, etc

こんな感じにいじれます。
www.jdoodle.com
複数ファイルいじれないんで、まあ用途としては文法確認とかそんな感じ。REPL使って確認する系のやつはファイル分割するってことないので動作確認はこれでいいんじゃないかな。バージョンの細かい差異は知らんけどな(デデーン。

確認していく内容としては以下のよう感じ。
■ sbt 準備
sbt - The interactive build tool

sbt console

うまくいくとこれで対話環境できるらしいですよ。
inujini.hatenablog.com
まあ環境構築この辺りでやっているんで詳しくはそっちみて(実は詳しくない)。


アルゴリズムの実装
んで簡単な文法の確認兼有名なアルゴリズム実装とかやっていきます。
アルゴリズム確認
・階乗計算
素因数分解再帰練習問題)
 ・文字列探索(パターン練習問題)
  ・ボイヤー-ムーア文字列検索アルゴリズム
 ・再帰呼び出しを使った深さ優先探索
 ・ビット演算を用いた部分和問題
 ・最短経路問題(ベルマンフォード法)
  ・最短経路問題(ワーシャル–フロイド法)

とりあえずこんだけ触ると競プロにも手を出したくなりますね(出さない)。

文法確認

  • {} 式
  • if 式
  • while 式
  • for 式
  • match 式(パターンマッチ)
  • Scala のオブジェクト
  • ケースクラス
  • トレイト

まあ文法関連は公式の方のドキュメント見れば色々丁寧に描いてあるんでこっちの問題は無料期間すぎてもなんとかなるんじゃないんですかね。
前書き | Scala Documentation

あ、そうだ。オブジェクト指向遊びでコンソール画面で遊べるRPG作ろうとか言うネタがあったんでとりあえずそれ晒しておきます。
RPG.scala · GitHub
友達といろいろいじって遊んでみようとか書いてあったりするんだけども僕はそういうのいないんで……。なんか意見などあればコメント残してくれれば機能追加するかもしれないししないかもしれない……。


んで、後半からはIDEつかって簡単なアプリ開発とかやります。
IntelliJ IDEA:JetBrainsによるプロ開発者向けJava IDE

最終的にこんなんつくれるようになります。
f:id:andron:20200511213558p:plain

GitHub
GitHub - Andou666/NnoNightcorePlayer-N


Overview (JavaFX 14)
後半のアプリ制作ほとんどJavaFXの機能使いながらやってたから「へーそんな機能あるんだ」ぐらいの感覚でいじってた。JavaFX今後使う機会でてくるんかな……。Scalaいじり関数型言語だーいじれーとか意味不明なノリでいじっているから、Javaに関わる問題は割と弱かったりするw。

まあ今回やった感じはそんな感じです。




sbt Reference Manual — ビルド定義
そういえばビルド関連(build.sbt)の話が薄味な気がした。

GitHub - sbt/sbt-assembly: Deploy fat JARs. Restart processes. (port of codahale/assembly-sbt)
これ使えば完璧ってことなんだろうけど、僕はその辺詳しくないのでよくわからない。


といった感じの内容でした。これでようやくScalaいじり駈け出せた。なるはやで次も消化していかないと……

つづく