diff options
Diffstat (limited to 'docs/index.html')
| -rw-r--r-- | docs/index.html | 71 |
1 files changed, 8 insertions, 63 deletions
diff --git a/docs/index.html b/docs/index.html index 6c7deb3..bc3627c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -84,14 +84,7 @@ <h2>Rust のプリミティブ型はどこからやって来るか</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -103,11 +96,7 @@ https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 <h2>[Ruby] then キーワードと case in</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -119,9 +108,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]]</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -133,14 +120,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[Ruby] 自身を実行している処理系の種類を判定する</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] "ruby" $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] "jruby" それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation <undefined> MRI < 1....</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -152,14 +132,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>Vimで選択した行の順番を入れ替える</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -171,17 +144,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>[Vim] autocmd events の BufWrite/BufWritePre の違い</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{"BufAdd", EVENT_BUFADD}, {"BufCreate", EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{"BufRead", EVENT_BUFREADPOST}, {"BufReadCmd", EVENT_BUFREADCMD}, {"BufReadPost", EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -193,13 +156,7 @@ https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/aut <h2>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -211,19 +168,7 @@ def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコー <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> |
