唐突な話をしますが(多分ほかの言語にもあるのかもしれないけど) #PHP 8.0以降のthrowは文ではなく式で、三項演算子やmatch式と組み合わせることができます。PHPにおける #never型 と呼ばれるすべての型の #部分型 が担う役割の一つなので、戻り値の型を変更する必要はありません。 #プログラミング
唐突な話をしますが(多分ほかの言語にもあるのかもしれないけど) #PHP 8.0以降のthrowは文ではなく式で、三項演算子やmatch式と組み合わせることができます。PHPにおける #never型 と呼ばれるすべての型の #部分型 が担う役割の一つなので、戻り値の型を変更する必要はありません。 #プログラミング
MicrosoftのOffice365限定だと思うのだが、Excelで数学記号を使うと縦に伸びるのだが・・・Offce365以前ではそんなバグ起こってなかったのに・・・ しっかりしろよ!!(ゾンビハンター)
ちなみにこれの直し方 1. 該当のセルを選択 2. 一旦フォントの種類を変更 3. フォントの種類を元に戻す 結果:セルの縦の伸縮が直る!
Office365のバグはこれだけではない。Wordの表に文字を入力する際、まれに謎の空白ができることがある。これは入力はしているけど、表示されていないためにこのようになっている。試しにそのセルの文章全体をカット&ペーストすると、表示されていなかった文字が表示されるようになる。
#Java の #NullPointerException ってもしJavaから始めた人だったら「Nullがなんなのか」はわかっても「NullPointerがなんなのか」はわかんないから、NullPointerExceptionの正体がわからなくなりがちだと思う。そしてそれは、おそらくC++を触るまでわからないだろう。 #プログラミング #cpp
「ぬるぽ」「ガッ」というのは唐突にNullPointerExceptionという何も知らなければ理不尽でしかない例外を出されて怒り狂ったJavaエンジニアたちの雄叫びなのだろう。知らんけど。
#Kotlin は良いぞ。なぜなら #Null安全 で、 #NullPointerException 地獄をスマートに解決できる作りになっているからな。 #プログラミング
前にも言ったと思うが、 #Go の #クロージャ はちゃんとクロージャなんだけど、 #Rust のクロージャはクロージャじゃないんだよね・・・できれば「Rustのクロージャ」と呼んだほうがクロージャに対する誤解が減ることは間違いないだろう。 #プログラミング
ほかにも、 #JavaScript 、 #Python / #PHP (オプション、注意点としてPHPのClosureオブジェクトはクロージャであるとは限らない)、 C#のクロージャもちゃんとクロージャしてますね。わかりづらいですが、 #Haskell にもクロージャはあります。 #csharp
>RT やはり淑女たるもの、「心も」上品なお方が「皆様から愛されるお嬢様」ですことよ。
どうでもよろしいですが、あまり「~ですわ」「~ますわ」と言うと、お嬢様ではなく、関西人だと思われなくて?存じ上げておりませんけど。
こんなテンプレみてーな安全配慮義務違反、労災が今でもあることに驚きが隠せない。 2018年に青森で社員が自殺 賞状を模し侮辱するような内容の書面を渡す #ldnews news.livedoor.com/article/detail…
パワハラってのは、人によってパワハラと捉えられるかそうでないかが変わってくるんだけど、これをパワハラじゃないと捉える人はいないだろう。明らかなる安全配慮義務違反である。
まぁいずれにしても、ジサツしたのだから、その時点で違反だし、労災認定されるべきだけどね。
@akkoden_akutoku 前者のほうのつもりで書いておりましたの。「書くと」に訂正いたしますわ。
いや、職場全体の雰囲気がそういう雰囲気だったら、従業員全体がパワハラでないと考えても、不思議ではないか・・・。まぁいずれにしてもジs(ry。
@akkoden_akutoku マジレスすると、このツイートではお嬢様言葉(?)で書いていたので、統一しただけ。
誤解させないように配慮するならわかるよ?でも人気にさせたいから、たったそれだけの理由で迷惑かけてでも誤解させるようなことを呟くとかマジで終わってんな。 迷惑かけてないなら良いけど、迷惑かけることが確実なのに誤解させるのはさすがに悪質すぎる。
無関係なハッシュタグってTwitter規約違反なはずなのだが、それを使うのはホンマ悪質。はっきり言って検索妨害なんよな。
使うって言うのは、同名であることを利用して、無関係なハッシュタグという規約違反をかいくぐるという悪質行為をするってことね。 こういう人は荒らしとしての才能あるね。荒らし行為をしているけど、BANされない悪質なタイプの荒らし。
あのさぁー、ネットを使い始めたばかりの子どもじゃないんだからさ、荒らしはやめようよ、な?
俺多分誤解してたけど、前に #Rust のfor i in 1..nと書くことで、 #C言語 のfor (int i = 0; i < n; ++i)と一緒になるとある方がおっしゃってた件は、処理的に等価になるのであって、等速になるということではないのね(←そっちの意味で訊いてた)。 #プログラミング
@yasuo_ozu 本当ですか?というより、最初からアセンブリコードも等価になることを示したほうが良いと思うのですが。
@yasuo_ozu 遅いとされているのはfor e in v(vはVec<T>型)であって、for i in 1..nがfor (int i =0; i < n; ++i)と等価だというのは違うってことなんですかね。それともfor文自体が遅いということなんでしょうか?
@yasuo_ozu 文章がおかしくなってしまい申し訳ありません。 つまりfor i in 0..nとfor (int i =0; i < n; ++i)が等価と言うのとイテレータのほうが速いというのは関係ないということでしょうか?
@yasuo_ozu なるほどです。そういう記事があるということは、Rustでは型がVec<T>であるかRangeであるか問わず繰り返し処理を書く場合はイテレータを用いたほうが良さそうな感じですね。 詳しい説明感謝いたします。
#TaPL 、 #型なし計算体系 を #Haskell で実装するところに入ったんだけど。TaPLでは #OCaml で実装されているので、まずはOCamlの文法を調べるところから始めなければならなかった・・・。 #プログラミング
とりまOCamlとHaskellとでどのように読み替えれば良いのかはわかった。
どうでも良いけど、第5章まで進めただけで大学ノートを半分以上使ったのだがw
「サイゼリヤで満足している奴が『貧しい』」だのなんだの発言した件、やっぱり-t/-i/-f/-mだったのか。もはやそこまで来るともはや-フ/ェミニズム関係ないよな。 正直俺からすりゃ生活の糧となるだけでも十分ありがたい話なのに、金額で食について語る奴はどうかしていると思う。
そんな発言した奴は一気にサイゼリヤに行くぐらいのお金しかなくなってでも周りにはサイゼリヤしかなくて、仕方なくサイゼリヤに入ったが「あなた、うちの客たちのこと『貧しい』って言いましたよね。お引き取りください」って断られて野草食うしかなくなる呪いにかかれば良い。
食べられることそのもののありがたさがわからないからそのような発言ができるのだ。恥を知れ。
#TaPL の第4章、普通に #Rust でも実装できそうだなと思ったので #Haskell だけでなくRustでも実装してみた。Rust慣れしていないので(コメントないのは抜きにして)Rustらしい書き方かどうかはわからんけど。 #プログラミング play.rust-lang.org/?version=stabl…
実装の一部間違えちゃってた(succ nvのときにfalseとすべきところをnvにしてた)。てへぺろ☆ play.rust-lang.org/?version=stabl…
iszero (succ nv)です。iszero (succ nv) → falseとなるべきなのですが、iszero (succ nv) → nvになっちゃってました。
ちなみにコードでは、「TmIf(TmZero, TmZero, TmPred(TmSucc(TmZero)))」と出力されてますが、これは条件部がブール値でないために行き詰まり状態となっていてこれ以上評価できないのでこれで正しいです。
succ (iszero nv) → succ v及びpred (iszero nv) → succ vとならなかったので修正しました。 #Rust に合わせるの、難しい。これで今度こそ大丈夫なはず。 #プログラミング play.rust-lang.org/?version=stabl… twitter.com/opaupafz2/stat…
pred (iszero nv) → pred vの間違いです、ごめんなさい・・・。
E-IsZero*のガード消し忘れ。何度もお。すまん。 play.rust-lang.org/?version=stabl…
#Rust はまずボクシング(スポーツではない)されないことが前提だから、パターンマッチをするとき、ボクシングされたものだとかまでは考慮しないので、まずそこが #TaPL 第4章の実現を難しくしてるのよな。たとえば #Haskell ではeval1 TmIf(True, t, _) = Just tと書くところを、-> #プログラミング
RustではTerm::TmIf(ref t1, ref t2, ref t3) => match &**t1 { Term::TmTrue => ...}と書かなければならない。なぜならt1, t2, t3はボクシングされているからね。
#関数型言語 の再帰型やパターンマッチングの融通さもある程度オートボクシングに助けられているところがあるので、それがサポートされていないRustでは少し書き方を変えなければならない。 第4章はオートボクシングがないときついという話を聞いたが、その通りだなと思った。
まぁ、そのうえで「オートボクシングがないならBox<T>型使えば良いんじゃね?」って思ったからRustで実装しようと思ったわけだが。
match &**t1←これ自分のコードではそうではないので間違いだけど、これでも動くから別に良いや。
ぶっちゃけ、俺的にはパワハラでジサツしちゃった件も某学校の凍タヒ事件もほぼ同じでしょ。こういった明らかな加害者を守る法律なんて完全になくなればいいのにね。 子どもの未来を潰したくないとか言うけど、加害者が被害者の未来を潰してるんだよなぁ・・・
知らんかった of the year 2022 大賞 #Rust で構造体及び列挙型の参照に対して #パターンマッチ させるとその構築子の要素がすべて参照になる。つまりマッチするすべての構築子の要素を参照させたい場合はmatch &v { ... }とすれば良い。 #プログラミング
refやmutによって参照か可変かとか指定できることは知っていたが、これは知らなかった。
逆に少ないとも聞いているが、 #Rust は #タプル構築子 が関数じゃないのだけど、 #Haskell では #データコンストラクタ は関数でもあるのよね。だからデータコンストラクタに対して高階関数を適用できる。Rustではできない。タプル形式だけではなくてレコード形式もあるからだろう。 #プログラミング
@yasuo_ozu すみません、Scalaでもできました。なんかできないのがあったと思うんですが、忘れてしまいました。
すみません、調べてみると #タプル構築子 も普通に関数でした。勘違いさせてしまい申し訳ありません。 一応関数だったのね・・・。 #プログラミング #Rust twitter.com/opaupafz2/stat…
#Haskell と比べて唯一できないのは、レコード構文を使っても #データコンストラクタ が関数になってることぐらいか・・・。まぁ、これはデータコンストラクタの定義とそのパターンマッチングを行う関数定義の糖衣構文なので・・・。
@yasuo_ozu let t = Tuple(...);という形ではなくて、let t = Tupleという形でです。
@yasuo_ozu tそのものをprintlnさせようとしたときに、「`fn(...) -> Tuple {Tuple}` cannot be formatted using `{:?}` because it doesn't implement `Debug`」というエラーが出たりします。これはなぜですか?
@yasuo_ozu はい、構築子というのは、enumにおけるバリアントがそう呼ばれており、かつ、タプル構造体のことも指しているので、タプル型そのものは関数と言っているのではないです。 誤解させてしまい申し訳ございません。
@yasuo_ozu ちなみにenumのタプル構築子は、タプル構造体とほぼ一緒(というか、構造体で定義できるものはenum内でも定義できます)なので、enumのタプル構築子でも同じ結果が出ます。
どうでも良いけど昨日一昨日ぐらいに公の場の目上の方に「 #JavaScript 、また触りたいですか?」と冗談で言われたので「いや、もう良いです!ほんとに! #TypeScript か #PureScript じゃないと書きませんので!」って返しといた。いやどうしても書かなければならないなら書くけど。 #プログラミング
とっとこー走る(Run)よλ郎 すみっこー走る(Run)よλ郎 だーいすきなのはー カリー関数ー やっぱりー走る(Run)よλ郎
IEのサポート終了に「なんで急に」はマジで笑っちゃったけど、脱IEにそこまでコストがかかるというのは、余程IEに依存してたんだな。まぁ、IEだからね、しょうがないね。
まぁ下手したら脱IEのために、まずコードを変えて、たくさん検査しなければならないので、コストがかかるというのはわからなくもないけど、前々からMicrosoftが「IE使うのやめましょう」と散々勧告してたのにそれを怠った人たちに問題があるとしか思えないんだよね。
前に #Rust で #TaPL の第4章( #構造的操作的意味論 )の実装をしましたが、定数(succは除く)以外の項で部分項にBox::new()するのが面倒だったので、そうしなくても良いように関数を作り、ついでに #自然意味論 も追加したうえでメソッド化しました。 #プログラミング play.rust-lang.org/?version=stabl…
#行き詰まり状態 も表示したかったので、自然意味論版はその性質上Option<Term>型ではなくTerm型を返すようにしています。行き詰まり状態のとき、エラーとしたいのであれば、戻り値をOption<Term>型に変更し、行き詰まり状態となる各項に対してNoneを返す必要があるでしょう。
最近、あまりお腹がすかん・・・食欲が、あまりない感じ。 ウーン、いわゆる典型的な、夏バテ、だな