岐阜だからさElixir

試していることなど...需要がないけど細々とアウトプットしてます

Elixir

【レポート】第5回清流elixir勉強会in丸の内を開催しました【再帰関数】

トピック 今回で第5回目の勉強会を僕の運営しているコミュニティで開催することができました 清流elixir 先週にはfukuoka.exを運営されているpiacereさんと Twitterで繋がらせて頂きまして多くの方に清流elixirの名を知って頂けました 本当にあざます!!! や…

Elixirのtrotを使って爆速APIを立ち上げる

おなじみgit探検隊 Elixirに限ったことではないが、定期的にgitでトレンドのレポジトリはチェックするようにしている そうすると大体、何が流行っていて何に注目が集まっているかが何となく分かる 最近は中国語のREAD.MEが多くて翻訳ないと詰む さておき、ま…

【レポート】第4回清流elixir勉強会in丸の内を開催しました【色々なパターンマッチ】

トピック 今回で第4回目の勉強会を僕の運営しているコミュニティで開催することができました 清流elixir connpassでの参加人数+開催直前に新規の1名の方に参加して頂けました 少しずつ賑わってきてる感があって素直に嬉しいです また参加者の業種や立場がバ…

Elixirでk近傍法を実装して近しいデータを予想する

k近傍法とは ざっと説明するとAというデータとBというデータが どれだけ近しいかを予測するためのアルゴリズム 仕組みは超簡単で以下のようなデータがあったとする size(大きさ)は1~5の5段階 is_red(見た目)は1~5の5段階 has_seed(種があるかないか)は0or1 a…

Elixirで最長共通部分列使ってタイプミスしてるかを調べる

プログラムでタイプミスを修正する難しさ 以下のような変数があったとする user_input_textは自身で入力したテキストで"apple"と入力したつもりが 間違えて"anpple"と入力してしまっている user_input_text = "anpple" answer_text = "apple" 他にもタイプミ…

ElixirのMapSet(集合)の使い方と集合カバー問題を解いてみる

Setは非推奨 元々、Elixirに実装されていたSetという集合のモジュールは現在、非推奨となっており MapSetを使ってくれよなと公式が言っている なのでよほどの理由がない限りはMapSetを使えばいいんじゃないかなと MapSetの使い方 MapSetモジュールを使うこと…

最短経路を求めるためにElixirでダイクストラ法を実装する

グラフと最短経路 こんなグラフのネットワークがあったとする Start, A, B, Goalをそれぞれノードといい 6,2,3...のような数字をエッジの重み(ここでは距離)という StartからGoalへの最短経路は見て分かるように Start -> B -> A -> Goal になるかと思う こ…

Faker使ってテキトーなサンプルデータを作る

githubの探検中に面白いものを見つける なんだこれは(褒め言葉 Faker 公式(hex)ドキュメント Faker is a pure Elixir library for generating fake data. fmfm... どうやらフェイクデータを色々作れるライブラリだそうです 公式ドキュメントを見てみると 名…

Elixirでqueue使って幅優先探索を実装する

Elixirにqueueがなかった件 しかし、Erlangには用意されていた Erlangの公式ドキュメントにばっちしqueueについて記述されている Elixirで解決できない時はErlangのドキュメントを見るというのは本当ですね Elixirからのqueueの使い方 新規のqueue作成 2つの…

セレクトソートとクイックソートをElixirで実装する

ソートの必要性について 前回の記事で実装した二分探索は 対象のリストがソートされていることが前提 つまりはリストをソートしてくれるアルゴリズムが必要になる え?もうEnum.sort()あるけど?とは言わない約束 一度自分で実装することが大事なんじゃないか…

ゆるく理解する二分探索とElixirでの実装

二分探索の生まれた背景 昇順ソート済みのリスト(配列)から特定の値のindex番号を取得したいとする #8のindex番号はいくつ?(7が知りたい) item = 8 lst = [1,2,3,4,5,6,7,8,9,10] これを単純に配列の頭から探索していくと index番号の0から初めて7番目、すな…

並行処理したい人に送るElixirのTaskの使い方と簡単な遊び方

Taskってなんじゃい Elixirでプロセスを作成する方法はいろいろあります 以前はelixirで並列処理を使ってファイルを同時に開き特定の文字を検索するで 並列処理をやりましたが、その時は spawn(module, :func, [argument) こんな感じでspawnメゾットを使って…

【レポート】第3回清流elixir勉強会in丸の内を開催しました【マップのパターンマッチ】

トピック 昨日、愛知県の丸の内にて私が運営しているコミュニティ清流elixirで 第3回目となる勉強会を開催させて頂きました さすがに3回目ともなると多少は要領が分かってきてわりとスマートに 活動できるようになってきたかと思ってます(力不足ですません …

Elixirでクソ簡単に公開APIをcallする

公開APIについて 以前「清流elixir」の勉強会でこの公開API、通称ジブリAPI(勝手に命名)を Enumとパイプ演算子を使って遊ぶ予定だったんですけど 当日になってcurlの戻り値が%{}(マップ形式)となっていないことに気づく(そりゃそう 知見としてもかなり強力な…

ErlPortでpythonのクラスメゾット呼び出しとElixir側にAtomを返す

続編のそれ 前回の記事でElixirからpythonの関数を呼び出して 最終的にjanomeを使って形態素解析を行いました 本当はpythonのclassメゾットの呼び出しとElixirに対して Atomのデータを返すということがやりたかったんですけど そこそこ記事が長くなってしま…

Elixirからpython呼び出してjanomeで形態素解析していく

ErlPortなるものを発見 色々とネットサーフィンしてたらErlPortというErlangのライブラリを発見 なんとErlang環境からpythonとRubyを実行できる模様...凄すぎる ErlangのモジュールはElixirから呼び出し可能なので勝ちました 前回の記事で作成したparser関数…

【レポート】第2回清流elixir勉強会in丸の内を開催しました

トピック 第2回清流elixir勉強会 昨日、無事に第2回の勉強会を開催させて頂きました 第1回目では方針を決める時間が長く、手を動かす時間が全くなかったのですが 今回の勉強会では「パイプ演算子を触る」というテーマで 普通に真面目に勉強しました(そこそこ…

優しく理解するelixirのOptionParserでCLIを使い慣れる

OptionParserとCLI 最近はこってりした記事を書いてばかりなので 久々にあっさりした記事を書こうと思います CLIって何 ここらへんは自己満程度の部分でメインはOptionParserの使い方のところなので そんなもん知っとるわという方は飛ばしてください Command…

elixirで並列処理を使ってファイルを同時に開き特定の文字を検索する

あいかわらず長いタイトル どういうことかというと ./file/file1.txt ./file/file2.txt : ./file/file99.txt file(n).txtには単純に文字が書いてあるだけです こんな感じですかね ppppppcatpppppppppppppp ppppppcatpppppppppppppp ppppppcatpppppppppppppp …

elixirでcsvファイルにデータを書き出す

mixのプロジェクトの用意 前提としてmix newでプロジェクトが作成されている状態とします mixコマンドを使ってプロジェクトを作成するまでの手順は こちらの前半部分で触れていますので 必要であればご覧ください テキトーにgitを覗いてみる あった(秒速 bea…

elixirでクソ簡単にAmazonレビューをスクレイピングする

用意するもの elixir(1.8.1でやってます) mix(elixirのビルドツール。クソ便利) HTTPoison(HTTPクライアント) Floki(HTMLパーサー) 事前準備について elixirのインストールについては割愛します 公式のドキュメントみた方が圧倒的ッ!に早いです こちらに各環…

【事後報告】清流elixirというコミュニティを立ち上げました

今更ですんません connpassで東海地方(主に岐阜/名古屋)でelixir勉強しようぜ!!って 安直な気持ちで立ち上げました「清流elixir」です 名前の由来はアホほど適当で、僕は岐阜出身です 岐阜といえば川でしょ。綺麗だから清流でええや。elixirのアイコンも雫み…

elixirで2次元のリストを縦方向に結合(merge)する

日本語が下手な件 どういうことかというと... #この配列を _lst_data = [ [1,2,3], ["a", "b", "c"], [true, false, true] ] #こうしたい _output_image = [ [1, "a", true], [2, "b", false], [3, "c", false] ] 要するに「2次元のリストを縦方向に結合(mer…

優しく分かるEnumのreduce関数と簡単なサンプル

reduce関数の動き方 reduce関数好きですか?僕は嫌いです。最近は好きです javascriptにもpython(要import)あるreduce関数なんですけど 使い道があんまり思いつかなかった頃がありました map関数とかfilter関数は名前の通りで使いやすいんですけど reduce関…

ゆるく理解するElixirのデータ構造体と簡単なパターンマッチング例

elixirでのデータ構造体 リスト タプル マップ キーワードリスト (構造体) ※今回は触れません よく混同するのでまとめときました リスト[] (list) javascriptやpythonでいう配列(array)です elixirではリストと名乗ってます _simple_numbers = [1,2,3,4,5] #…

優しく始めるelixirのEnumと簡単な使用例

Enumとは何なのか 恐ろしいほど簡単に説明すると Enum Enumerables(列強可能な)なデータに対して使える便利な関数たち といったところですね。iterationに近いもんだと思ってます 詳しいことは公式ドキュメント を読みましょう(無責任 Enumはelixirの強みの1…

適当なきっかけで関数型言語(elixir)を始めました

適当なきっかけ 今までクソザコエンジニアとして頑張ってきたつもりです 色々なものを書いた気がしますね... フロントやったりバックやったり... 色々な業務を経験させて頂いていることには感謝しかありません そんな中で同じ業種の人達を見ていると、まぁ大…