被演算子が二つあり、そこから一つの結果を得る演算子。 下記の などを指す。
四則演算で用いられる (+)、(-)、 (*)、(/)などは、数学においても多くのプログラミング言語においても二項演算子として扱われる。
その他、例えばベクトル演算の場合、内積や外積などに使われる演算子(ドット演算子や <,> 、^ など)も二項演算子に該当する。 また、C言語など一部のコンピュータ言語では比較演算子や代入演算子なども二項演算子として処理される。
はじめに 枕木の歌、いいよね... nikkieです。 flake8を触っていての気づきを書いていきます。 目次 はじめに 目次 相互に排他的な W503 と W504 2つある経緯は、PEP 8の変更 顕在化するのは、--ignoreオプションと使った時 終わりに P.S. Ruffでは? 相互に排他的な W503 と W504 静的解析ツールflake8。 PEP 8(Pythonコードのスタイルガイド)に沿っているかもチェックしてくれます。 PEP 8関連のワーニングの中に今回取り上げたいものがあります まずは、W503! 二項演算子の後で改行しているのをよしとし、前で改行している場合は…
マグマの計算(3) 前回の「マグマの左単位元と右単位元」では、等式の集合から推移律によって新しい等式の集合を作っていましたが、等式の数が多くなりすぎるので、「エレファントな群とリー代数(1) - エレファント・ビジュアライザー調査記録」と同様に一つの式から等式によって変形していくようにしました。結果的には「エレファントな群とリー代数(1) - エレファント・ビジュアライザー調査記録」のプログラムを Python で書き換えたようになっています。こうするとブログで書けるぐらいの数になりました。 class Exp: pass # Multiplication クラス class Multipli…
マグマの計算(2) 「マグマの左単位元と右単位元」の続きです。「推移閉包を求めるプログラム」は使えそうにないので、推移律を一回だけ適用するように変更しました。 class Exp: pass # Multiplication クラス class Multiplication(Exp): def __init__(self, left, right): self.left = left self.right = right def __str__(self): if isinstance(self.left, Multiplication): left_str = "(" + str(self.…
マグマの計算 「マグマの左単位元と右単位元」の問題の構文解析を ChatGPT でやってみるため以下のように入力しました。 「マグマ(二項演算をもつ代数的構造)の構文解析をするプログラムを書いてください: 演算子は * とします。 かっこを使えるとします。 生成元は変数(先頭が大文字の文字列)と定数(先頭が小文字の文字列)とします。 結果は構文木を返してください。」 すると「Lark ライブラリ」を使ったプログラムが返ってきました。そこで「Lark ライブラリ」について ChatGPT で調べながら改造しました。 「type が multiplication のときは Multiplicati…
それはplain TeXじゃん、ちゃんとTeXで書いてよ。 #えええっ #TeX #TeX言語 https://t.co/9bdXM5IgNA— 某ZR(ざんねん🙃) (@zr_tex8r) 2024年4月2日 「“TeX”とは何を指すのか」というのは常に悩ましい問題1であるが、自分の感覚としては「“TeX”とはplain TeX(のみ)を指す」という習慣は少なくとも現代において2は「“TeX”とはLaTeX(のみ)を指す」という習慣と同類である(要はあまり妥当でない)と考えている。 となると、「LaTeXのコードは“TeXのコード”ではない」という前提において、何だったら“TeXのコード”と…
先日、社内の Slack に「フロントエンドの人はもちろん全問正解しないと…」という冗談 (?) と共に JavaScript クイズサイトのリンク https://jsisweird.com/ が流れてきたので挑戦したところ、散々な結果でした。筆者はフロントエンド専門ではありませんが、やはり、あの複雑な暗黙の型変換を理解せねば、と思い改めて調べてみました。 プリミティブ値とは オブジェクトでない値はプリミティブ値 (primitive value) と呼ばれ、 数値、文字列値、真偽値、BigInt 値、Symbol 値、undefined 、null があります。 (undefined 、n…
PREV | LIST | NEXT 関数型インタフェースの定義と記述を対策する 4つのネストしたクラスを見ていこう Supplier Consumer Predicate Function UnarayOperator BinaryOperator まとめ 関数型インタフェースの定義と記述を対策する 黒本の第2章は『関数型インタフェースとラムダ式』、この中にある関数型インタフェースの定義と記述について対策を進めていく。とりあえずは下記の6つに関して、コードと共に理解していく。 インタフェース 英語の意味 戻り値型 メソッド Supplier 提供者 T get() Consumer 消費者 …
PREV | LIST | NEXT Java Gold合格へ向けて 黒本の第2章は『関数型インタフェースとラムダ式』、これをさらに細分化すると下記の3つに分かれる(黒本より抜粋)。 java.util.functionパッケージの関数型インタフェース 関数型インタフェースの定義と記述 ラムダ式の利用 java.util.functionパッケージの関数型インタフェースの問題は、下記の3つの観点で、用意されているインタフェースを覚える必要がある。 インタフェース…黒本に記載されている主なインタフェースは11個 戻り値型…インタフェースごとに決まっている メソッド…インタフェースごとに決まってい…
ちょっとしたメモ、三本立て。 Rで畳み込み(線形畳み込み)を行うconvolve()関数のメモ 雑感 二項演算子とパイプのメモ {naniar}パッケージはナルニア国物語 Rで畳み込み(線形畳み込み)を行うconvolve()関数のメモ Rでベクトルの畳み込みを行うconvolve()関数のメモ({stats}パッケージの関数で通常ではRの起動時にロードされている)。 線形畳み込み(普通の畳み込み)を行うときには引数のtypeをtype = "open"とする。既定値ではtype = "circular"で循環畳み込みになっている。 このとき、xとyをそれぞれ計算するベクトルとしたとき、pyt…
圏 $`\mathcal{C}`$ とその対象 $`c`$ に対して、スライス圏〈オーバー圏〉$`\mathcal{C}/c`$ を定義できます。このとき使われるスラッシュは、二項演算子記号のように見えます。そうだとすると、スラッシュの実体(セマンティクス)である演算とはどのようなものでしょうか? 考えてみます。$`\newcommand{\mrm}[1]{ \mathrm{#1} }\newcommand{\hyp}{\text{-} } \newcommand{\In}{\text{ in }} \newcommand{\cat}[1]{\mathcal{#1}} \newcommand{…
Pythonの改行はPEP8ではどこにするべきですか? Pythonの可読性と保守性を高めるために、コーディング規約であるPEP 8は改行の使用方法についても明確なガイドラインを提供しています。改行の適切な使い方は、コードの見た目や理解しやすさに大きな影響を与えるため、Pythonプログラマーにとって重要なトピックです。この記事では、PEP 8に従ったPythonの改行の使い方について詳しく解説し、具体的なコード例を交えながら理解を深めていきます。 行の長さの制限 PEP 8では、1行の長さに制限を設けることで、コードの可読性を向上させることを推奨しています。標準的な行の最大長は79文字ですが…
こんにちは、技術部の谷脇です。 去る2月10日に行われたYAPC::Hiroshima2024ですが、みなさまはいかがだったでしょうか。私は参加して大満足であり、運営の方々に大感謝させていただきます。 さて、カヤックではゴールドスポンサーと椅子スポンサーをしていたというのは開催直前に出した記事で述べさせていただきました。 techblog.kayac.com この記事では伏せられていた、椅子スポンサーのPerlbatrossですが、この記事ではPerlbatrossの内容紹介と問題解説をしようと思います。 Perlbatrossとは YAPC::Hiroshima2024の開催期間中にコードゴ…
はじめに Haskell を勉強中なのですが、($) と (.) の使い分けで少し混乱しました。というもの、読んでいた入門書で、($) と (.) が置き換え可能そうな例が載っていたからです。 置き換え可能なのか、私が勘違いしているだけなのかわからなかったため、調べていました。 前提 ($) について 「関数適用演算子」という名前です ($) による関数適用は右結合になります これは、($) が Haskell 標準の二項演算子の中で最も低い優先順位であることと、($) が右結合であることから実現されています(参照:演算子 - ウォークスルー Haskell) 定義は以下の通り ($) :: …
序論 プログラミングコンテストでは「答えの数を1000000007で割った余りを求めよ」という問題が大変よく出題される。1000000007は素数で、ほかにも 998244353 が代わりに出題されることもよくある。これらは真の解は大きくなりすぎて計算できない場合でも、加減乗算をするたびにその素数で割った余りを求めてあげれば解が変わらない。 ModInt ソースコード中では問題で与えられた大きな素数は定数変数の mod と書くことにする。 a * (b + c) を求めたいときに、演算の度に余りを求めると ans = a * ((b + c) % mod) % mod; 複雑な式になると %m…
ラベル付きメトリックは、PromQL クエリ言語を用いてグラフに表示できます。Mackerel では、PromQL の以下の機能がサポートされています。 時系列セレクタ ベクトルセレクタ =(等号ラベルマッチャ) !=(不等号ラベルマッチャ) =~(正規表現ラベルマッチャ) !~(否定正規表現ラベルマッチャ) 範囲ベクトルセレクタ なお、__name__ ラベルを用いたメトリック名の指定には対応しておりません。 範囲ベクトルセレクタの制約事項 範囲ベクトルセレクタで指定した期間とグラフの表示期間が大きく異なる場合、グラフの表示が正しく行われないことがあります。 これには、PromQL で 5 …