【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net

1 ◆9Zst2CqO/Y
垢版 |
2015/06/03(水) 21:58:20.67ID:ZW2Eui3i
Erlangの仮想環境(BEAM)上で動作するプログラミング言語 Elixirを語りましょう。

公式
http://elixir-lang.org
2016/01/04(月) 01:14:57.42ID:cYvB3s6b
>>203
別解として、Enum.takeやtaleWhileで必要な分だけ絞ってから、Enum.eachに渡すってのはどうかな?
205デフォルトの名無しさん
垢版 |
2016/01/04(月) 12:22:35.92ID:uh/Y4MEw
>>36
あるあるktkr

ifがキモい
2016/01/04(月) 18:03:17.37ID:re70kwTT
v1.2 キタ━━━━(゚∀゚)━━━━!!
今年はElixir一色になるな。

 Ruby on RailsのコミッタであるJosé Valim氏は、Erlangの仮想環境であるBEAM上で動作する、オープンソースの関数型言語「Elixir v1.2」を、1月3日(現地時間)に公開した。
2016/01/05(火) 05:13:32.39ID:6GG4/tqm
おお、これでconstてんこ盛りでながったらしい宣言だらけでうんざりするC++から解放されるのか!!!!
2016/01/05(火) 10:10:37.29ID:JRpiyNmr
この言語の適用範囲でC++使ってたの?
アホまる出しだね
209デフォルトの名無しさん
垢版 |
2016/01/05(火) 12:49:18.89ID:L7c5HugA
p = Path.join [System.cwd, "hoge.txt"]
IO.puts p
if File.exists?(p), do: :ok = File.rm!(p)
if File.exists?(p), do: IO.puts("oops!"), else: IO.puts("deleted")

ここまでは期待通り動いてたんだが
最後の行を

if File.exists?(p), do: :ok = File.rm!(p)
if File.exists?(p), do: IO.puts "oops!", else: IO.puts "deleted"

とやるとスルーされてなにも表示されなくなったんだ
警告もエラーも何も出ないのはなんとかならんかなー
2016/01/05(火) 13:13:35.70ID:L7c5HugA
if の else のところに true 書かされるのは確かにきもい
2016/01/06(水) 13:44:50.53ID:yluT1kPN
新年早々人がいるみたいなので質問です。

defmodule Hoge do
def mainLoop win do
receive do
msg ->
:io.format "Got event ~p~n", [msg]
mainLoop win
after 1000 ->
:io.fwrite "."
mainLoop win
end
end
def start do
:wx.demo
:wx.new
f = :wxFrame.new :wx.null, -1, :erlang.binary_to_list "Hoge", [{:size, {1024, 768}}]
:wxFrame.connect f, :close_window
:wxWindow.show f
mainLoop f
:wx.destroy
end
end
Hoge.start

これで一応動作するのですがdemoのwindowを閉じてもmessageをreceive出来ません
どうすればdemoが閉じられたことを検出出来ますか?
2016/01/06(水) 14:09:19.42ID:yluT1kPN
f = :wxFrame.new :wx.null, -1, :erlang.binary_to_list "Hoge", [{:size, {1024, 768}}]
ここは、
f = :wxFrame.new :wx.null, -1, :erlang.binary_to_list("Hoge"), [{:size, {1024, 768}}]
の間違いでした。
あとdemoを閉じるときは右上の[X]とかではなくてメニューでQuitしたときの話です。
2016/01/06(水) 19:39:23.76ID:qrnhlzmT
>>212
ここかな?

http://wxerlang.dougedmunds.com/index.php/first-window/coding-the-wx-window-part-1
2016/01/07(木) 15:01:13.30ID:XOpkkkUz
関係なくね?
215207
垢版 |
2016/01/07(木) 18:44:19.83ID:DCQzRipJ
>>208
そんな事言われても困るわ
うちの会社ApacheとC++だけでWebアプリ書くのが仕事なんだぜ

Erlangの頃からずっと気になってたけど記述性のせいで排除されたのがようやっとジェネリックに羽ばたける機会得た気持ちを押さえ切れないんだぜ!!
2016/01/07(木) 18:53:25.70ID:shLGmIyQ
>>215
そんな会社がこの言語を採用するとは思えん
Pythonあたりで我慢しときなさい
2016/01/07(木) 18:58:22.67ID:yCTaLtjS
>>215
C++もクソレガシーなやつならErlangの方が良いな
つかApacheとC++って某ニコ動の会社?
218デフォルトの名無しさん
垢版 |
2016/01/07(木) 22:21:23.95ID:kbOQ2XId
ニコニコはErlangで動いてるよ
実際にホットスワップとかしてる
2016/01/07(木) 23:32:43.72ID:1PDKvYW2
本家で電子版(だけかわからないけど)Programming Elixir買った人にアップデートクーポンがメールできてるとおもうけど、利用期限が3月までみたいなのでお忘れなく。
https://pragprog.com/book/elixir12/programming-elixir-1-2
2016/01/07(木) 23:34:38.20ID:1PDKvYW2
PFIは、c++でwebフレームワーク作ってたね。
2016/01/07(木) 23:38:39.18ID:yCTaLtjS
でも正直型は欲しいナリ
型エラーで死なれても困るナリ
2016/01/10(日) 18:55:50.40ID:isYkwNcj
haskell面白そうって思ったけど
なんかあれでwebアプリを作るところまで持っていける気がしなかったので、
手軽にパターンマッチング楽しめるelixirに手を出すことにしました。
事実上のデファクトスタンダードなWAFがあるのがいい。
2016/01/15(金) 01:04:30.90ID:uzY6d77k
phoenixのコード見ててわかんないところがあったんですが
def accepts(conn, [_|_] = accepted) do
ってところの [_|_] = acceptedってどういう意味何ですか?

https://github.com/phoenixframework/phoenix/blob/v1.1.2/lib/phoenix/controller.ex#L859
2016/01/15(金) 11:01:32.37ID:CRSduh9Q
>>223
acceptedは
headとtailの値はなんでもいいけど(_でマッチして値は参照してないので)
リストじゃないといけない
というパターンマッチ
つまり引数に対する制約
2016/01/15(金) 11:56:03.35ID:NW8jpekK
ついでなので
_ = accepted
[_] = accepted
[] = accepted
全部 [_|_] と違うものに(も) match する
2016/01/15(金) 19:30:34.91ID:uzY6d77k
>>224 - 225
回答頂きありがとうございます。そういう書き方もあるんですねー。
ガード構文使っても良さそうな気もしましたけど
例:
def accepts(conn, accepted) when is_list(accepted) do

これだとlist内の要素数を規定できないってことなんすかね。
2016/01/15(金) 21:22:38.38ID:EuNWEiBo
>>226
慣れたらパターンマッチの方が読むの早いよ
30年位前からある記法だからこの際覚えよう
古代言語だとProlog, 現役だとHaskel, Scala
Prolog以外は微妙に記号が違うけどね
2016/01/15(金) 21:24:06.63ID:EuNWEiBo
それに分解も出来るし、と書いとかないといけないか
229デフォルトの名無しさん
垢版 |
2016/01/16(土) 15:17:24.71ID:CPZavs1f
[H|T] = accepted の要素数の方が重要で値は何でも良いっていうバージョンだと思うけど
[H|T] の暗黙の了解の部分は知ってないとイミフだよね
2016/01/16(土) 16:09:15.80ID:H0Ul8NcN
tutorialに書いてある事なので知らない方がおかしい
2016/01/17(日) 14:06:59.31ID:no2woK8b
>>230
すんません
Web+DB pressのelixirの文法回を観ただけでphoenixに入門してます。
おすすめのチュートリアルとかあるようでしたら教えて下さい。

とりあえず、追加で
https://elixirschool.com/jp/を観た後に
Programming Elixirをちょっとずつ読み進めてるくらいです。
日本語で書かれたいいチュートリアルがあればいいんですけど
2016/01/17(日) 15:34:48.19ID:l7JJpqW9
>>231
最近twitterで流れてきた。

https://hayabusa333.booth.pm/items/186705
2016/01/17(日) 18:50:22.99ID:wzxdIUIG
宣伝乙
2016/01/17(日) 18:52:56.48ID:no2woK8b
>>232
せめて1章とか読めないと辛いっす。
目次も単純すぎて怖い
2016/01/18(月) 02:42:34.21ID:XM4mBu50
>>231
230だが本家のgetting-started
英語読めなきゃサンプルコードだけ見てもOK
というか但し書きなきゃ当然本家のだろ
236デフォルトの名無しさん
垢版 |
2016/01/18(月) 10:47:56.39ID:e3HkPcDC
>>227
>>226
>慣れたらパターンマッチの方が読むの早いよ

そういう問題じゃないだろ
意味が違うんだから

>>226
>ガード構文使っても良さそうな気もしましたけど
>def accepts(conn, accepted) when is_list(accepted) do
>これだとlist内の要素数を規定できないってことなんすかね。
と聞いてる訳で

>>227
>>226 に対する返答としては不適切
2016/01/19(火) 06:03:23.96ID:wvDRZZ+k
この仕事で英語読めないやついるのな
2016/01/19(火) 10:05:18.90ID:P1UEcZh1
>>237
英語読めないとマイナー言語は厳しいね
239デフォルトの名無しさん
垢版 |
2016/01/19(火) 12:49:30.79ID:py3nDmvs
>>231
>>235 の日本語訳あったお
http://elixir-ja.sena-net.works/getting_started/1.html
2016/01/19(火) 18:14:31.79ID:wvDRZZ+k
>>238
何でもそうだけど一次ソースを見るのが一番良いと思う
マイナー言語は進化も早いし情報もすぐ古くなるし
かえってノイズになる
ここで紹介されてる日本語訳もどこまで通用するかわからんし
すれ違いスマソ
2016/01/19(火) 20:39:41.66ID:dTrbcQZg
>>240
最初のとっかかりなら日本語文献でも構わないのでは?
後で差分を追えばいいし、仕様変更と言っても言語そのものが大きく変わるなら
メジャーバージョン変えるだろうし。
2016/01/20(水) 20:53:59.18ID:xrqpD1Un
elixirでおすすめのエディターあります?
今はvisudalStudioCode使っていますが。動的言語だからあんまり補完機能は期待してないんですが、
モジュールと関数補完くらいは動いて欲しいところ
2016/01/21(木) 07:59:54.05ID:eMLUln7f
emacsじゃだめなん?
2016/01/21(木) 12:33:31.15ID:zpe1QHZ3
ErlangのrecordをElixirで受け取りたいんだけど
パターンマッチで
#hoge{fuga=#hage{suka=Val}} when Val=pontan -> 略
みたいに受け取ってたのはElixirではどう書けばいい?
2016/02/18(木) 15:50:50.26ID:B8Z0X3BJ
Mix.Tasksで実行すると、configに書いたloggerのフォーマットが適用されないのはなぜなのか
2016/02/19(金) 14:03:51.04ID:hw/X0Y/j
http://www.tiobe.com/index.php/tiobe_index
247デフォルトの名無しさん
垢版 |
2016/02/21(日) 15:04:57.72ID:zmvsu5mb
https://fa-works.com/blog/why-you-should-never-ever-ever-use-mongodb
2016/02/22(月) 16:40:37.11ID:2HiyJIgg
elixirのコードを読むときにmacroの部分を実際のコードに展開して、
意味がわかりやすくなるようなツールってありませんか?
2016/02/22(月) 18:34:22.61ID:QLpZ1xcH
ありますん
2016/03/19(土) 18:36:39.26ID:HbZef8w/
ギターの弦はいつもこれ使ってる
251デフォルトの名無しさん
垢版 |
2016/04/11(月) 09:06:22.67ID:pH222naU
Phoenixでgraceful restartってどうやればいいですか?
252デフォルトの名無しさん
垢版 |
2016/05/01(日) 13:49:02.80ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
2016/07/01(金) 08:20:12.02ID:ah3ORdvZ
プログラミングElixir
http://shop.ohmsha.co.jp/smartphone/detail.html?id=000000004675
商品詳細情報
Elixir(エリクサー)は、並行処理を得意とするプログラミング言語ErlangのVM(エンジン部分)を基盤とし、
Erlangよりもなじみやすい文法を採用したプログラミング言語です。
本書は、世界的なRubyプログラマであるDave Thomas氏が書いた、プログラミング言語Elixirの本格的解説書、“Programming Elixir” (Pragmatic Bookshelf, 2014) の翻訳書です。
通常のプログラミングから、並行処理、さらなる応用へと順を追って進む構成になっています。
本書を読むことで、Elixirらしいプログラミングを学ぶことができます。
第1章 赤いピルをとれ
第1部 伝統的なプログラミング
第2章 パターンマッチング
第3章 不変性
第4章 Elixir基礎
第5章 匿名関数
第6章 モジュールと名前付き関数
第7章 リストと再帰
第8章 マップ、キーワードリスト、セット、構造体
第9章 寄り道:型とは何か?
第10章 コレクションの処理 - EnumとStream 第11章 文字列とバイナリ
第12章 制御フロー
第13章 プロジェクトを構成する
第2部 並行プログラミング
第14章 複数のプロセスを使う
第15章 ノード - 分散システムの要
第16章 OTP:サーバ
第17章 OTP:スーパーバイザ
第18章 OTP:アプリケーション
第19章 タスクとエージェント
第3部 より高度なElixir
第20章 マクロとコードの評価
第21章 モジュールのリンク:ビヘイビアとuse
第22章 プロトコル - ポリモルフィック関数 第23章 かっこいい機能いろいろ
254デフォルトの名無しさん
垢版 |
2016/07/01(金) 11:00:05.83ID:wNtMwO0s
>Rubyユーザーにおすすめ

そうかなー

ElixirがRubyのようなポジションを得られなかったのはなぜか
http://developers.srad.jp/story/16/06/17/0827240/
2016/07/01(金) 16:52:29.03ID:udOV/3y6
そもそも汎用的な言語じゃないだろ
2016/07/02(土) 01:30:32.95ID:jb6KwTQU
>>253
何時出るんだコレ
257207
垢版 |
2016/07/02(土) 10:33:10.57ID:wOG82f10
>>253
電子版は同時じゃないのか
258デフォルトの名無しさん
垢版 |
2016/08/06(土) 07:09:49.58ID:QbakpjAH
>>253
原著は11月にProgramming Elixir 1.3がでるんだが
2016/08/06(土) 10:05:07.66ID:Jz+gSdkD
>>253
> 発売日 : 2016年08月19日

もうすぐか。
2016/08/06(土) 13:34:35.82ID:0gT1apGa
>>258
ここにいる住民はもちろん原著も読んでるんだけど
日本語版はなんていうかコレクションみたいな感じで買ってるだけだろ
2016/08/07(日) 00:58:03.08ID:dWKOByb7
原著は1.0の完パケ出して、1か月以内ぐらいには1.2にアップデートしてた覚えが。
11月までにバージョンアップがあれば、またアップデートするのかな?
2016/08/07(日) 20:56:59.08ID:0UOC+LCK
これ商用で使ってる会社あるのかな?
2016/08/08(月) 17:56:04.88ID:1QM6yHGZ
にこにこにー
2016/08/08(月) 18:15:11.97ID:YlbbT2Ic
にこにこで使ってるのはErlangでげしょ
2016/08/08(月) 18:17:01.23ID:1QM6yHGZ
ツイキャスって何つかってんだろ
2016/08/09(火) 00:42:31.00ID:owfLCICx
https://images-na.ssl-images-amazon.com/images/I/518jex9rmIL._SX350_BO1,204,203,200_.jpg
2016/08/09(火) 14:35:04.79ID:n5pitoha
webの情報で充分だわ
2016/08/09(火) 22:12:54.85ID:wDq4bKHM
Cloud9へElixirインストール
How to Run Elixir in Cloud9's IDE


1. Create a Cloud9 account. If you already have a Github account, just log in with that.
2. Click “Create a new workspace”.
3. Give it a name, say, “Elixir”.
4. Select the “Custom” template.
5. When the workspace loads, run the following commands in the console:

# For some reason, installing Elixir tries to remove this file
# and if it doesn't exist, Elixir won't install. So, we create it.
sudo touch /etc/init.d/couchdb

# Standard Ubuntu Elixir installation instructions
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install elixir

【参考】http://blog.danielberkompas.com/elixir/2015/08/28/how-to-run-elixir-cloud9-ide.html
2016/08/18(木) 22:02:19.86ID:P1jqfkwK
キミはプログラミングelixirを買ったか?
1.2対応で良かった。
270207
垢版 |
2016/08/18(木) 22:45:34.19ID:drzfRPPB
>>269
電子版待ちなのであるよ
紙の本は裁断してScansnapするのが手間だし、画像PDFじゃまともな検索できないし
2016/08/19(金) 03:16:46.42ID:DBbgWrmG
>>270
どっちも買いなよw
2016/08/20(土) 20:13:13.25ID:+gNOQI6p
電子版買った
2016/08/20(土) 20:48:43.74ID:z8Z6c++m
https://estore.ohmsha.co.jp/titles/978427421915P
274デフォルトの名無しさん
垢版 |
2016/08/21(日) 11:14:32.10ID:72zLWHSO
宣伝uzee
2016/08/21(日) 12:40:56.77ID:s9hu1dfL
もういっちょついでに、チーとシート
http://media.pragprog.com/titles/elixir/ElixirCheat.pdf
276270
垢版 |
2016/08/21(日) 23:58:25.17ID:5jhCQvfg
>>271
電子版出てたので買ったよ
でもこれPDF版ダウンロードできなかった
かつmobiもepub版も固定レイアウトで文字拡大ができないのね orz
#ちっさい端末だとちと読みにくいです
2016/08/22(月) 01:18:38.67ID:d5DQ07MM
おれは書籍版を買った。
英語版は電子版だったけど途中までしか読めなかったから読みやすくて助かる
2016/08/28(日) 12:14:53.20ID:jyC+SeSp
英語版「Programming Elixir 1.0」をPragProgで購入して1.2まで無料アップデートが続いていたんだけど、さすがに今回は無料はないかと思いつつもPragProgにログインしたら、1.3も無料アップデートのクーポンがあった。嬉しい。
2016/08/29(月) 11:29:44.89ID:9SXPJEnM
>>278
まじすか?
どこでアップデートできます?
1.2から1.3へのあげ方がわからないです
2016/08/29(月) 11:33:49.47ID:9SXPJEnM
>>279
yourAcount -> yourAcountから出来たっす。どうも
2016/08/31(水) 13:46:33.14ID:NHF24EVE
https://forums.pragprog.com/forums/449/topics/14507
以前、作者が1.3と次は別扱いになるとあって、1.3買うつもりだったが、
いま見たら、1.3アップデート出来るようなこともかいてある。

ただこのフォーラムは、サポートの個別対応をする場ではなく、
状況としては、サポート側が一貫した対応できてないみたいようなので、
アップデート権利が来てない場合に確認したかったら、まずサポートに連絡する必要がある。
2016/09/08(木) 18:30:10.71ID:G4KXW9Lo
実際に業務で使った方、使ってみた感想を聞かせてください
283デフォルトの名無しさん
垢版 |
2016/09/09(金) 11:53:33.68ID:ZufuCknD
馬鹿除けに効果覿面
2016/09/13(火) 22:47:22.28ID:q9eF0fFg
だめじゃんw
2016/09/30(金) 17:11:08.47ID:8cA8SzFR
https://www.amazon.co.jp/dp/168050200X
Programming Elixir 1.3
Dave Thomas

https://www.amazon.co.jp/dp/1680501666
Programming Elixir 1.2
Jose Valim, Dave Thomas

https://www.amazon.co.jp/dp/161729201X
Elixir in Action
Sasa Juric
2016/09/30(金) 17:13:03.85ID:8cA8SzFR
https://www.amazon.co.jp/dp/4274219151
プログラミング Elixir 1.2

ハイ訳本周回遅れ
287デフォルトの名無しさん
垢版 |
2016/10/06(木) 12:33:20.70ID:Yw0Cruyw
Linux API を、Windows API に変換するので、Ubuntu64 のバイナリがそのまま動く、
Windows Subsystem for Linux (WSL) で、Elixir をやっている人いる? 調子はどう?

apt-get で、パッケージもインストールできる

日本語も使える端末、ConEmu。
GUI表示用のXサーバー、Xming X Server for Windows
2016/10/06(木) 15:50:59.15ID:xaiWfMZS
マルチ死ね
2016/12/21(水) 00:41:32.11ID:DAWAuc9g
エリクソン的に電力効率上げろとかなって
BEAMをパフォーマンスにもがんばっちゃったりして
2017/01/01(日) 16:47:37.65ID:5iqQJEcI
実用とは別に
とりあえず関数型やってみる人にもこれいいんじゃない?
関数型は(C系からすると)変な文法の言語多い中ではまとも
2017/01/01(日) 21:07:09.43ID:9MvoRZrQ
それならElixirよりErlangの方がいいよ
292デフォルトの名無しさん
垢版 |
2017/01/11(水) 17:06:18.94ID:O2me4zYJ
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512
2017/01/11(水) 18:32:16.43ID:CAfk2KQ1
1.4リリースされてるね。小幅な変更?
294デフォルトの名無しさん
垢版 |
2017/01/16(月) 13:32:27.92ID:ElK/b/RG
ちょいスレチだがphoenix.newでnpmエラー出ね?
2017/01/17(火) 03:39:41.37ID:4Cr+RKob
>>294
nodejsとnpmの更新ためしてみて
296デフォルトの名無しさん
垢版 |
2017/03/25(土) 06:40:52.92ID:uA74ETF+
書き捨てのスクリプト作成の用途では使い勝手いいと思いますか?
297デフォルトの名無しさん
垢版 |
2017/03/25(土) 13:11:55.17ID:5MnOmzEx
文字列処理出来ない訳じゃないけど面倒
unicode混ざってたら猶更
298デフォルトの名無しさん
垢版 |
2017/04/01(土) 06:10:57.77ID:/rzYCoy4
【Elixirカンファレンス】Elixir Conf Japan 2017
2017/04/01(土) 開場:10:30 開演:10:40
lv292624994?ref=qtimetable&zroute=index
299デフォルトの名無しさん
垢版 |
2017/04/02(日) 19:06:27.10ID:fP8TJ4RC
http://news.mynavi.jp/news/2017/03/30/133/
Erland
2017/05/28(日) 09:14:30.41ID:kC4qoZB1
文字列はUTF-8みたいだけど何が面倒なんだろう?
301デフォルトの名無しさん
垢版 |
2017/06/23(金) 10:33:14.34ID:0OdP20aK
july
302デフォルトの名無しさん
垢版 |
2017/07/29(土) 05:44:10.33ID:LJVzSIs1
1.5リリースされたね、おめでとう
2017/07/29(土) 11:23:37.29ID:Ws5hVYlo
july終わりだな
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況