Rust– category –
-
Rust
Rust | 単方向リストを自作する – enum の活用例
基本的なデータ型の一つに、単方向リストがあります。関数型プログラミングの基本型としてよく利用されるものです。 この記事では、Rust での単方向リストの実装例を紹介します。 なお、実際の開発においては、Rust で関数型プログラミングを記述するため... -
Rust
VSCode | エディタの79文字目に縦線を表示する
Python のコーディング標準である PEP8 では、1行の文字数は79文字以内にすること、と規定されています。次のように、settings.json に rulers の定義を追加することで、エディターに縦線を表示させ、視覚的に79文字の位置を意識することができます。 sett... -
Rust
Rust – MNIST データベースをダウンロードして解凍する
MNIST データベースとは、0~9の手書き数字を画像としたサンプルファイル群です。機械学習のための学習データ、テストデータとしてよく用いられます。 Rust にて、これらのファイルをダウンロードして解凍するためのサンプルプログラムを掲載します。 Ca... -
Rust
Rust – フィボナッチ数列をメモ化する
フィボナッチ数列は、fib(n) = fib(n-1) + fib(n-2) の漸化式で表現される数列です。プログラミングにおいて再帰の例でよく参照されます。 Rust で記述すると次のようになります。 // fib.rs fn fib(n: u64) -> u64 { match n { 0 => 0, 1 => 1, ... -
Rust
Rust – Cargo で CUDA ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、CUDA のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 事前準備 Cargo で CUDA をビルドするためには、Cuda Toolkit が別途インストールされている... -
Rust
Rust – Cargo で C++ ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、C++ のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 C++ を含めた Cargo ビルド方法 プロジェクトの作成 まず、cargo new で新規プロジェクトを作... -
Rust
Rust – バブルソート
Rust でのバブルソート実装例です。実用性ゼロです。 バブルソート 実行結果の出力からもわかるように、とても非効率なソート方法です。 fn bubble_sort<T>(xs: &mut [T]) where T: PartialOrd + std::fmt::Debug, { println!("starting bu... -
Rust
Rust – マージソート
Rust でのマージソートの実装例です。 マージソートとは、分割統治法と呼ばれるアルゴリズムの一種です。対象のリストを細分化していき、ソート済みリストを順にマージしていくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあ... -
Rust
Rust – 挿入ソート
Rust での挿入ソートの実装例です。 挿入ソートとは、ソート済みの配列に対して、残りの要素を挿入していくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあるので実用性はありません。アルゴリズムや Rust の学習用のサンプル... -
Rust
C++ – Rust の関数を静的リンクで呼び出す
C++ から Rust の関数を呼び出す方法のメモです。gcc を利用して、静的リンクで呼び出すケースについてまとめます。 rustc でライブラリを生成する cargo ではなく rustc でライブラリを生成する方法です。 Rust - 静的リンクライブラリの生成 Rust にて、...
12