[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
27
(1): デフォルトの名無しさん [sage] 2024/06/01(土) 10:39:11.44 ID:8vnvDrFp(1) AAS
へー、便利そう。
だけどこういう仕組みってカラム追加時のDBのマイグレーション辺りが入ってくるととたんに難しくなるんだよなぁ。
32: 警備員[Lv.6][新芽] [sage釣] 2024/06/01(土) 22:51:53.44 ID:l8IWJadP(1) AAS
それで実行計画も取れるの?
99
(1): デフォルトの名無しさん [sage] 2024/06/12(水) 21:31:56.44 ID:t2XH+QPZ(1) AAS
>>94
94(1): デフォルトの名無しさん [sage] 2024/06/11(火) 22:42:05.37 ID:r1NSY/4p(1) AAS
>>90
配列でもベクタでも[..]を付ければスライスへ変換されるわけか
どちらもstd::slice::SliceIndexによるものだが
その前にVecはstd::ops::Derefでsliceに変換されるのに対して
配列はstd::marker::Unsizeが実装されていて
std::ops::CoerceUnsizedでsliceに変換される点が異なる
101
(1): デフォルトの名無しさん [sage] 2024/06/13(木) 08:11:01.44 ID:xJ4qiDeD(1) AAS
zlib-rsの0.2.0きたね
外部リンク:github.com
130: デフォルトの名無しさん [] 2024/06/14(金) 18:18:31.44 ID:49Oug44p(1/2) AAS
>>109
109(5): デフォルトの名無しさん [sage] 2024/06/13(木) 21:29:59.05 ID:/G8REiwP(1) AAS
RustはC/C++に置き換わるのか?
ゲーム分野のC/C++は置き換わらない
153: デフォルトの名無しさん [sage] 2024/06/15(土) 15:03:07.44 ID:jiIbIudV(2/3) AAS
勘違いしてる人が多いようだけど
Rustの目的は全てをRustで書くことではなく安全にすることなんだよ
だからOSシステムコール呼び出しもRust(と最小限の各アーキテクチャ毎のレジスタ積み等)で頑張るのではなくCで書かれたlibcを用いている
つまりRustのunsafe部分を最小限にするとともに、unsafeだが枯れて安全なlibcを活用している
223
(1): デフォルトの名無しさん [sage] 2024/06/16(日) 19:01:15.44 ID:4AvHozuz(1) AAS
>>221
221(1): デフォルトの名無しさん [sage] 2024/06/16(日) 18:44:48.95 ID:dwkxcYMW(20/22) AAS
ひとつしかない所有者がスコープを抜ける、もしくは所有者に別の値が代入されると、そこから先にはメモリはもうない
有効な参照(借用)が存在したまま移動や破棄は起きない
これは静的に判定されコンパイルエラーとなる
303: デフォルトの名無しさん [sage] 2024/06/21(金) 22:48:19.44 ID:zGyXPRVd(1) AAS
>>292
292(1): デフォルトの名無しさん [sage] 2024/06/20(木) 22:53:46.34 ID:L3G38ey0(1/2) AAS
>>267
>タプルにするのも面倒だな
chunkをtuples()すればいいだけだよ
面倒?
tuples()は余っても余らなくてもNoneを返して終わってしまうため今回の場合はあかんね

>>293
293(1): デフォルトの名無しさん [sage] 2024/06/20(木) 22:59:31.43 ID:L3G38ey0(2/2) AAS
>>265
>Result<(名前, データ), 残り>を返すイテレーターが適切
残りを扱いたい場合はイテレータが返す要素の一部として残りを表現するよりも
chunks_exactのようにイテレータを消費して終わった後に別途残りを取得できる形にしたほうが親切だよ
chunks_exact()はイテレータには使えない
スライスは長さがわかっているから対応できるけど
311: デフォルトの名無しさん [] 2024/06/23(日) 02:43:59.44 ID:FDfmyhMX(1) AAS
>>308
308(2): デフォルトの名無しさん [] 2024/06/22(土) 22:33:47.59 ID:dw6Bjmix(1) AAS
>>304
Clippyは知らないが、自分のAIの使い方だとPythonでサンプルコードを書いて、Javaなりに変換するようにAIに投げる。
意図と違ったらその都度、こう直してって書いて微調整していく。って感じ。

Rustとかは雑誌の入門記事しか読んでないのに、関数型プログラミングバリバリのコードが出てきた。
(とはいえ元からPythonを意識した文法だったので、ほぼそのまんま)

fn main() {
for file_name in std::env::args().skip(1) {
println!("{}", file_name);
if let Ok(lines) = std::fs::read_to_string(&file_name) {
for (i, line) in lines.lines().enumerate() {
println!("{:>2}:{}", i + 1, line);
}
}
}
}
が関数型プログラミング *バリバリ* 何て書くからだろ。
俺も 308 のどこがバリバリ?と思ったわ。
関数型バリバリが読みやすいかどうかは別の話よ。
343
(1): デフォルトの名無しさん [] 2024/06/24(月) 23:39:26.44 ID:FIb4AZ4T(2/2) AAS
係数はこっちで求めたでござる
外部リンク:paiza.io
import sys, os
from functools import reduce
import sympy as sy

def lc(a):
x, y = sy.symbols('x y')
p = 0
for i, (c, d) in enumerate(a):
g = reduce(lambda s, t: (t[0], (s[1][0] * (1 if t[0] == i else (x - t[1][0])), 0)), enumerate(a), (-1, (1, 0)))
f = g[1][0]
p += d * f / f.subs(x, c)
print(p)
print(p.expand())
for c, d in a:
print(p.subs(x, c), p.subs(x, c) == d)

if __name__ == '__main__':
lc([(1, 2), (2, 1), (3, 3), (4, 10), (6, 4), (8, 8), (10, 6)])
lc([(2, 1), (1, 2), (3, 3), (10, 4), (4, 6), (8, 8), (6, 10)])
438: 警備員[Lv.22] [sage釣] 2024/06/28(金) 03:44:03.44 ID:J0YB6tE5(1) AAS
論文の検証を論文と異なる言語ではしないでしょぅ
NCNNやDarkNetを超えるエンジンがあるわけではなし
537: デフォルトの名無しさん [sage] 2024/07/01(月) 14:11:38.44 ID:JlB5uk0q(2/3) AAS
>>534
534(3): デフォルトの名無しさん [sage] 2024/07/01(月) 12:59:53.25 ID:irzLgX5l(1) AAS
>>525
こう書くとresultがErrの時に返せずここでpanicになってしまう

 let val = result.unwrap();
 f(val)

そのためpanicしてもいいとか絶対にErrとならない特殊な場合を除けば
unwrapを用いてはダメでmapを使ってこのように書くんだよ

 result.map(|val| f(val))

ここで本当に関数fを呼ぶだけならresult.map(f)と簡略化できるけど
f(val)の部分は式やブロックの可能性もあるので簡略化せずに進めるね

これは以下と同等でErr(err)の時に保持してくれている

 match result {
  Ok(val) => Ok(f(val)),
  Err(err) => Err(err),
 }

ちなみにf(val)もResultを返すときは
mapの代わりにand_thenがある

 result.and_then(|val| f(val))

つまり以下の二つは同等

 result.map(|val| f(val))
 result.and_then(|val| Ok(f(val)))

この場合はもちろん簡素なmapを用いるべき
>ちなみにf(val)もResultを返すときは
の条件なら
>つまり以下の二つは同等
> result.map(|val| f(val)) // Resultを還さないf
> result.and_then(|val| f(val)) // Resultを還すf
じゃないんですかね(Ok(f(val))は蛇足)
733
(1): デフォルトの名無しさん [] 2024/07/10(水) 22:15:46.44 ID:b9m+kH0p(1) AAS
設計が悪いといえばその通りなんだけど、そのせいでインタフェースが崩壊しているプロジェクトは実際にあるし、RustやGoが継承を廃止した理由の一つでもあると思う
クラス継承だとこの問題はもっと簡単に起こりやすい
前述の例は (あくまでも見かけ上は) インタフェースを定義しており、クラスを継承してるわけではないので、Rustのトレイトでもやろうと思えば起こるけどね
836
(1): デフォルトの名無しさん [sage] 2024/07/13(土) 16:03:55.44 ID:E+PNnzD+(2/2) AAS
829でPartialEq/PartialOrdを例に出したのは
この2つのtraitがsuper/subの関係にあるからで
Cloneとその実装型の関係とは別だよ
PartialEqとPartialOrdの等価判定についてのLSPを考えてる

PartialOrd: PartialEqとする以上
PartialOrdの比較はPartialEqの等価条件を保存すべき←LSP?
みたいな
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s