[過去ログ]
Rust part21 (1002レス)
Rust part21 http://mevius.5ch.net/test/read.cgi/tech/1692105879/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
441: デフォルトの名無しさん [sage] 2023/10/08(日) 08:07:41.64 ID:WAd1DVRF 同等に書けてないでしょw http://mevius.5ch.net/test/read.cgi/tech/1692105879/441
445: デフォルトの名無しさん [sage] 2023/10/08(日) 10:39:23.48 ID:WAd1DVRF >>443 Haskell qsort [] = [] qsort (x:xs) = qsort [y | y <- xs, y < x] ++ [x] ++ qsort [y | y <- xs, y >= x] Erlang qsort([]) -> []; qsort([X|Xs]) -> qsort([ Y || Y <- Xs, Y < X]) ++ [X] ++ qsort([ Y || Y <- Xs, Y >= X]). http://mevius.5ch.net/test/read.cgi/tech/1692105879/445
453: デフォルトの名無しさん [sage] 2023/10/08(日) 18:19:11.05 ID:WAd1DVRF enumのリストで書いてみたわ rust不慣れだから所々おかしいかも https://ideone.com/0Ro48L enum List<T> { Cons(T, Box<List<T>>), Nil, } impl<T: Copy + PartialOrd> List<T> { // 略 fn qsort(&self) -> Self { match self { List::Nil => List::Nil, List::Cons(pivot, tail) => { let (smaller, rest) = tail.partition(|x| *x < *pivot); smaller.qsort().concat(&rest.qsort().prepend(*pivot)) } } } } fn main() { let list = List::<i32>::nil().prepend(4).prepend(8).prepend(8).prepend(3).rev(); list.each(|n| print!("{}", n));println!(""); list.qsort().each(|n| print!("{}", n));println!(""); } http://mevius.5ch.net/test/read.cgi/tech/1692105879/453
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s