- @neetsdkasu #@neetsdkasu
特に関係はないけどdoを使うとinを省くとエラーでないとわかった
ideone.com/uJZjz0
さっきユキコダでテキトーに他人の解答眺めてたときに知った - @neetsdkasu #@neetsdkasu
do構文はよくわからんので特に使う気はないのだけれど
- @neetsdkasu #@neetsdkasu
同じくユキコダの他人の提出眺めてて知ったのが
ドトネトフレムワクで文字列のSplitはデリミタを配列で渡す必要ないことと
エフシャアプで無名ぽいletバインディングができるということ(謎)
ideone.com/wVlV87 - @neetsdkasu #@neetsdkasu
ideone.com/zfPsdR
シーシャアプでも文字列のSplitのデリミタ直渡しできた - @neetsdkasu #@neetsdkasu
だがしかし、できる根拠を見つけられていない
もしかしてモノ固有の実装だったりするのか・・・? - @neetsdkasu #@neetsdkasu
ローカルでドットネトフレムワク上でやってみたが普通に実行でけた・・・謎
- @neetsdkasu #@neetsdkasu
msdn.microsoft.com/ja-jp/library/…
オーバーロードの解決のとこのコード例に確かに文字だけ渡す例が載ってるけど、それだけなんだよなあ・・・ - @neetsdkasu #@neetsdkasu
あー、コード例のすぐ下に解説あった・・・引数の属性の問題かparam arrayか
- @neetsdkasu #@neetsdkasu
引数に値を並べると配列扱いになるやつか可変長引数ってやつか
- @neetsdkasu #@neetsdkasu
メソッドの定義のparams今まで見落としてたなあ・・・そんなん知るかよって話・・・うおおおおおお
- @neetsdkasu #@neetsdkasu
VB6とジャヴァでは可変長引数の関数やメソッドは書いたことあるけどさあ・・・
あんま意識してたことなかったなあ・・・可変長引数の関数やメソッドは平然と使ってるけど仕組みまで意識して使ってなかったしぃ、完全に記憶の外側だった - @neetsdkasu #@neetsdkasu
en.wikibooks.org/wiki/Haskell/d…
どうもdo構文じゃなくdo表記法というらしいがletのin省略の話は見つけた - @neetsdkasu #@neetsdkasu
よおく見たらwikibooksかあ・・・
- @neetsdkasu #@neetsdkasu
wiki.haskell.org/Monads_as_comp…
do notationはこれかな・・・ - @neetsdkasu #@neetsdkasu
このページ全体的には何書いてるかワケワカメ
- @neetsdkasu #@neetsdkasu
あとは無名ぽいバインディングの根拠を見つけるだけか・・・
バインディングしないを示すアンダースコアとかなら使ったことあるけど
ideone.com/v3IDUw - @neetsdkasu #@neetsdkasu
msdn.microsoft.com/ja-jp/library/…
見つけた
()はアンダースコアと同様にプレースホルダの役割があるのか
アンダースコアとの違いはunit型専用のプレースホルダってところか
ideone.com/SZNFOG
ideone.com/uDoam3 - @neetsdkasu #@neetsdkasu
あれだ、むしろアンダースコアのほうの根拠が見当たらない
ワイルドカードとしての説明は見当たるが・・・ - @neetsdkasu #@neetsdkasu
ワイルドカードはさらっと酷い紹介の感じかシンボルページからはmatch式とジェネリクスにしかリンクないけどfor..inのページ内にワイルドカードに触れてるしletに関しては説明まだ見つけられてないじょ
- @neetsdkasu #@neetsdkasu
関係ないけど2次元配列のスライスの*ワイルドカードというのを知った
- @neetsdkasu #@neetsdkasu
_と()でコンパイル結果違うのか試してみたがファイルサイズは変わらんかったけど
バイナリは数バイトほど異なってるようだった
ildasmにかけてみたら違いはMVIDとImage baseという部分だけで
コードそのものには違いがなかった
同じだった - @neetsdkasu #@neetsdkasu
MVIDとImage Baseはググった感じだとどーでもいい情報ぽいな(どうでもよくない)
前者はコンパイラがファイル区別するための管理IDってだけぽいし、後者は要は実行時のメモリ上配置場所(?)の指定って感じ
プロのガチ開発とかでは使うのかもしれんが
まぁどーでもいい情報だわ - @neetsdkasu #@neetsdkasu
うーん、まぁletでプレースホルダと明示したい場合でunit型なら()を使うべきなんだろうな
マニュアルにも載ってるわけだし
でもユキコダで見たあの使い方するならdoバインディングでもいいような気がしなくもない
ideone.com/O0DuBh - @neetsdkasu #@neetsdkasu
うーん、ユキコダっつか全般的に let () = より do がいいような気がしなくもない
つか let () = にしろ do にしろ使いどころがあるとしたら明示したいときってだけだろうなあ…開発系でやたらに省略せず分かりやすいコードを書くって場合の明示?可読性か - @neetsdkasu #@neetsdkasu
let _ = と ignore もどっちを使うほうがいいかってとこありそうだな
まぁたぶん後者のほうがいい、前者のletは戻り値を置く位置に置けないし、後者なら戻り値unitだから戻り値を置く位置における
ただタイピング量がな…前者なら戻り値の位置に()でも置いとけばいいし - @neetsdkasu #@neetsdkasu
let _ = だとヘスケル感覚だと何か実行されなさそうな不安な気分になる
ヘスケルはいまだによく分かんないけど、まぁヘスケルは遅延評価だから実行されないわけだけど - @neetsdkasu #@neetsdkasu
タイピング量と言っても2文字の差くらいか?
ignoreは6字でまぁだいたいパイプ(?)というのと一緒に使うから+3字の9字
let _ =は7字
微差か - @neetsdkasu #
また微妙時間余る事態
くだらんついーとしすぎた - @neetsdkasu #
バッファローは調査中か・・・
twitter.com/jvnjp/status/7…
- @neetsdkasu #
スタートメニューにアンインストールのショートカット並べるの誤クリックしそうで嫌なんだけど
- @neetsdkasu #@neetsdkasu
っていうか誤クリックを乱発するおれ自身が嫌なんだけど