RUST勉強中、4/23の積み上げ

前回の続き。

逆ポーランド記法の計算処理を実装します。

use clap::Parser;
use std::fs::File;
use std::io::{stdin, BufRead, BufReader};

#[derive(Parser, Debug)]
#[clap(
    name = "My RPM program",
    version = "1.0.0",
    author = "Your name",
    about = "Super awesome sample RPM calculator"
)]
struct Opts {
    #[clap(short, long)]
    verbose: bool,

    #[clap(name = "FILE")]
    formula_file: Option<String>,
}

struct RpnCalculator(bool);

impl RpnCalculator {
    pub fn new(verbose: bool) -> Self {
        Self(verbose)
    }

    pub fn eval(&self, formula: &str) -> i32 {
        let mut tokens = formula.split_whitespace().rev().collect::<Vec<_>>();
        self.eval_inner(&mut tokens)
    }

    fn eval_inner(&self, tokens: &mut Vec<&str>) -> i32 {
        let mut stack = Vec::new();

        while let Some(token) = tokens.pop() {
            if let Ok(x) = token.parse::<i32>() {
                stack.push(x);
            } else {
                let y = stack.pop().expect("invalid syntax");
                let x = stack.pop().expect("invalid syntax");
                let res = match token {
                    "+" => x + y,
                    "-" => x - y,
                    "*" => x * y,
                    "/" => x / y,
                    "%" => x % y,
                    _ => panic!("invalid token"),
                };
                stack.push(res);
            }

            if self.0 {
                println!("{:?} {:?}", tokens, stack);
            }
        }

        if stack.len() == 1 {
            stack[0]
        } else {
            panic!("invalid syntax")
        }
    }
}

fn main() {
    let opts = Opts::parse();

    if let Some(path) = opts.formula_file {
        // ファイルから読み出す
        let f = File::open(path).unwrap();
        let reader = BufReader::new(f);
        run(reader, opts.verbose);
    } else {
        // 標準入力から読み出す
        let stdin = stdin();
        let reader = stdin.lock();
        run(reader, opts.verbose);
    }
}

fn run<R: BufRead>(reader: R, verbose: bool) {
    let calc = RpnCalculator::new(verbose);

    for line in reader.lines() {
        let line = line.unwrap();
        let answer = calc.eval(&line);
        println!("{}", answer);
    }
}
$ cargo run -- -v
   Compiling samplecli v0.1.0 (/home/taki/rust/samplecli)
    Finished dev [unoptimized + debuginfo] target(s) in 0.76s
     Running `target/debug/samplecli -v`
1 1 1 + +
["+", "+", "1", "1"] [1]
["+", "+", "1"] [1, 1]
["+", "+"] [1, 1, 1]
["+"] [1, 2]
[] [3]
3

ITニュース(04/26)

いきなりの方針転換? Twitter、サードパーティ製のアドオンを集めた専用サイトをオープン – INTERNET Watch

Twitterがサードパーティツールを集めた専用サイトをオープンするなど、これまでとは方針を一転させ、サードパーティとの協調関係を模索している。

ASUS“TUF GAMING”で固めた構成ならCore i7-12700Kはパワーリミット無制限でもド安定!しかもハイコスパ!! – PC Watch

“Alder Lake”こと第12世代Coreプロセッサを使ったゲーミングPCの自作は、性能面や新機能などで面白さ満点。しかし、一方でCPUには高い冷却力が必要、安定動作にはマザーボードのVRM(電源回路)が重要など、パーツを選ぶにあたっては事前に考慮しておくべきことも少なくないため、ハードルの高さを感じている方もいらっしゃるのでは。そこで今回は、CPUに12コア20スレッドの「Core i7-12700K」を使い、ASUSの良コスパ&高耐久で人気の“TUF GAMING”シリーズのパーツを中心とした作例…

Androidのおサイフケータイアプリで繰り返し停止の不具合、アプリ提供元が回避方法を案内中 – INTERNET Watch

Androidの「おサイフケータイ」アプリで繰り返し停止する不具合が4月中旬頃から発生している。アプリ提供元はGoogle Playストアのアプリページで回避方法を案内中だ。

街で見かける「1円」スマホ 実は違法!? 総務省が覆面調査で 約1割の販売店で販売方法に問題あり|TBS NEWS DIG – TBS NEWS DIG Powered by JNN

最近街で再び見かけるようになった1円で販売される携帯端末。総務省は覆面調査を行った結果、法律に違反する値引きが多数あったと明らかにしました。店頭に掲示されている携帯電話本体の価格。10万円近くするiPhone13miniが23円で販売されている例もあります。総務省は公正な競争を促すためだとして、3年前から▼回線の…

「全員船内にいた…」“事故当日”の観光船動画を独自入手 乗客名簿の携帯電話は全て繋がらず…|TBS NEWS DIG – TBS NEWS DIG Powered by JNN

知床半島沖で26人を乗せた観光船が消息を絶ってから3日目。事故当日、出港直後に撮影されたとみられる映像を独自入手しました。撮影者は「全員船内にいた」と証言。一方、午後3時ごろには乗客名簿の携帯電話は全て通じなかったということです。いったい何が?(内容は25日23時時点の情報です)▼TBS NEWS DIG 公式サ…

3Dプリンタ建築のパイオニア!“日本初”に大使まで見学! 大岡航さん(28)(2022年4月25日) – ANNnewsCH

3Dプリンターを活かした、建築技術の普及をめざす「株式会社Polyuse」代表取締役、大岡航さん(28歳)。今年2月、国内ではじめて3Dプリンターを活用して、建築基準法を満たして施工された建物の建築に成功した。同志社大学在学中にWEB/システム開発事業を中心としたIT会社を創業した大岡さん。しかし経営していく中で…

ISSの新ロボットアーム稼働に向けて、ロシアの宇宙飛行士が船外活動を実施 – GIZMODO JAPAN

ロシアの宇宙飛行士がISSにロボットアームを装着する船外作業を敢行。

Galaxy M23 5GはSIMフリー!実力を徹底解剖の巻:スマホ総研定例会220 – アスキー

毎週月曜夜は、アスキー編集部で四六時中スマートフォンの話ばかりしている“スマホ総研”のメンバーが、入れ替わり立ち替わり、スマホに関するちょっとしたトークを生放送でお届けします。▽関連記事アスキースマホ総研・白書https://ascii.jp/serialarticles/1209978/▽主な出演者つばさ(@t…

サードウェーブ、マカフィー社に対し損害賠償請求。東京地裁が認める判決 – PC Watch

株式会社サードウェーブは25日、2018年10月にセキュリティソフト大手のマカフィーを相手取り賠償を求めていた裁判について、東京地方裁判所がマカフィー社に2,347万5,262円の損害賠償を命ずる判決を言い渡したと発表した。

こいこいメタバース。 Meta Quest Gaming Showcaseで発表されたゲームまとめ – GIZMODO JAPAN

先日のゲーム発表イベント「 Meta Quest Gaming Showcase」で発表された、VRの入口となるゲームタイトルを12個ご紹介します。

Ryzen 7000シリーズ、DDR5メモリのみをサポートか。DDR4には非対応な模様 – ニッチなPCゲーマーの環境構築Z

Zen 4アーキテクチャとなるRyzen 7000シリーズCPUですが、メインメモリはDDR5のみをサポートする模様です。海外メディアのTom’s Hardwareが報じました。 2022年後半に発…

Microsoft Surfaceシリーズが最大35%OFF! Amazonタイムセール祭りは4月26日まで – 窓の杜

Amazon.co.jpでは、4月26日までの期間限定でビッグセールである『タイムセール祭り』が開催されています。その一環として、Microsoft製Windows PC『Surface』シリーズがセール中です。

男性宅で浴室借りた小学校講師、友人の交際女性が入る前にスマホ設置…脱衣所で盗撮狙い逮捕 – 読売新聞オンライン

愛知県警愛知署は24日、日進市立小学校常勤講師の男(24)(日進市)を県迷惑行為防止条例違反(のぞき見、撮影行為)の疑いで逮捕した。  発表によると、男は23日午後10時半頃、日進市の友人男性宅で、浴室の脱衣所に設置し

深夜の孤独な逃走劇を描くドライビングホラー「Beware」の新バージョンがリリース、巨大なマップやVR対応を導入 | doope! – Doope

チェコ出身の3DアーティストOndrej Svadlena氏が自身の亡命体験に基づいて開発を進めている独創的なオープンワールドドライビングサバイバルホラー「Beware」ですが、新たにOndrej Svadlena氏が新 […]

2インチ径にBlu-ray10億枚分のデータを保存できる超高純度ダイヤモンドウェハ – PC Watch

アダマンド並木精密宝石株式会社は、量子メモリや超高感度磁気センサーなどに活用可能な、直径2インチ(約55mm)の超高純度ダイヤモンドウェハの量産技術を開発した。

ついに画面に触れずに「視線で操作できるスマホ」が登場! – ナゾロジー

スマホの操作は画期的でしたが、今や画面にいちいち触るのすら煩わしいと感じている人も少なくないでしょう。米CMUは視線追跡と手首の振りだけで直感的に素早く操作できるスマホの新しい入力システムを開発しました

PCゲームを持ち歩ける「Steam Deck」のドック、発売前にアップグレードされる – GIZMODO JAPAN

その手頃なサイズから「Nintendo Switch」と比較されることが多い、Valveの携帯型ゲーム機こと「Steam Deck」では、公式の「Docking Station(ドッキングステーション)」が晩春にリリースされると発表されていました。それが発売前にも関わらず、このドッキングステーションにいくつかのアップグレードが施されていることが判明しています。

経済ニュース(04/26)

米国株、ダウ反発し238ドル高 金利低下でハイテク株に買い ナスダックも上昇 – 日本経済新聞

【NQNニューヨーク=川上純平】25日の米株式市場でダウ工業株30種平均は3営業日ぶりに反発し、前週末比238ドル06セント(0.7%)高の3万4049ドル46セントで終えた。新型コロナウイルスの感染が広がる中国の景気が減速するとの懸念から売りが先行した。売り一巡後は米長期金利の低下を支えに足元で下げが目立っていたハイテク株を中心に買いが入り、相場全体を押し上げた。中国では新型コロナの新規感染

エリート夫、事故死…タワマン住まいの妻が2回泣き叫んだワケ【弁護士が解説】 | 富裕層向け資産防衛メディア – 幻冬舎ゴールドオンライン

配偶者の死後、婚外子の存在が発覚するケースは少なくありません。近年では婚外子も嫡出子と同等の相続権が認められているため、遺産分割のプランを変更する必要が生じることもありますが、なにより面識のない相手と遺産分割協議のテーブルに着くなど、想像以上の大きなストレスがかかってしまいます。不動産と相続を専門に取り扱う、山村暢彦弁護士が実例を交えて解説します。

マスク氏、ツイッター買収で合意-440億ドル、非上場化へ – ブルームバーグ

米テスラの最高経営責任者(CEO)で資産家のイーロン・マスク氏は米ツイッターを440億ドル(約5兆6400億円)で買収することで合意した。過去最大規模の一つとなるレバレッジド・バイアウト(LBO)を活用してツイッターは非上場化される。

「人のマネをして自爆する人」と「うまく学びを活かせる人」との決定的な差 – ダイヤモンド・オンライン

この3月に『起業家の思考法 「別解力」で圧倒的成果を生む問題発見・解決・実践の技法』を出版した株式会社じげん代表取締役社長の平尾丈氏。25歳で社長、30歳でマザーズ上場、35歳で東証一部へ上場し、創業以来12期連続で増収増益を達成した気鋭の起業家だ。そんな平尾氏が本当はやりたかったけどできなかった事業」を実現した、究極の別解力をもつ起業家として尊敬するのが、マネーフォワード代表取締役社長CEOの辻庸介氏。ソニー、マネックス証券を経て2012年に起業。銀行口座やクレジットカード情報を一元管理し、家計簿を自動で作成す…

物価高に国費6.2兆円 中小企業対策1.3兆円 – 日本経済新聞

政府は26日にも決める原油高・物価高対策に6.2兆円の国費を充てる方針だ。ガソリン補助金の拡大や中小企業の資金繰り対策、生活困窮者への支援などに振り向ける。必要な資金を確保するため、予備費をさらに積み増す。物価高に直接の効果は乏しいとみられる事業もあり、国会審議などで政策の中身の精査が欠かせない。急速に進む物価高のための包括的な対策との位置づけになる。しかし、補助金による対症療法にとどまるとの

【Q&A】広島市中心部の路面電車・バス220円均一の方針 なぜ?どうなるの? – 中国新聞デジタル

広島電鉄や広島バス、広島交通など広島都市圏の交通事業者7社が25日、市中心部のデルタ市街地の路面電車(白島線を除く)や路線バスの運賃を「220円均一」とする方針を明らかにした。広島駅―紙屋町などの都…

〔米株式〕NYダウ続落、250ドル超安=ナスダックも安い(25日朝) – Yahoo!ファイナンス

【ニューヨーク時事】週明け25日のニューヨーク株式相場は、米中の景気減速懸念が重しとなる中、続落して始まった。…

東洋建設、逆行高 任天堂創業家が買収提案 – 日本経済新聞

25日の東京株式市場で、東洋建設が逆行高となった。前週末比で一時3%高の984円をつけた。任天堂創業家の資産運用会社「ヤマウチ・ナンバーテン・ファミリー・オフィス(YFO)」から1株1000円で買収提案を受けたと22日に公表し、さや寄せする形で上昇した。東洋建設は海洋土木が強み。資本提携する前田建設工業の親会社、インフロニア・ホールディングスが3月から1株770円でTOB(株式公開買い付け)を

【GW直前】“近く”て“お得”なスポット・サービスが続々登場 – 日テレNEWS

25日、埼玉・川口市の首都高速道路では、初めてとなる施設がオープンしました。ゴールデンウイークを控え、近場で楽しめてお得なサービスが続々登場しています。   ◇子供も、大人も、思わずはしゃぎたくなるゴールデンウイークが近づく中、25日、東京都のお隣、埼玉・川口市にオープンしたのは、首都高速の川口パーキングエリアと…

コーエーテクモ純利益最高、株運用益伸びる 22年3月期 – 日本経済新聞

コーエーテクモホールディングスが25日発表した2022年3月期の連結決算は、純利益が前の期比20%増の353億円となり過去最高を更新した。歴史を題材にしたスマートフォンゲームが好調だったほか、IP(知的財産)を提供している中国などでのロイヤルティー収入も寄与した。有価証券の運用益も膨らんだ。年間配当は108円と従来予想から10円増やす。21年4月1日付で1株を1.3株に分割しており、分割考慮後

那覇空港 全日空ラウンジにカッターナイフ 保安検査手続き停止 – nhk.or.jp

25日夕方、沖縄県の那覇空港の制限区域内にある全日空のラウンジでカッターナイフが見つかり、およそ1時間半にわたって保安検…

やや円売りに反応、中国人民銀が外貨預金準備率を引き下げ=ロンドン為替 – みんかぶFX

やや円売りに反応、中国人民銀が外貨預金準備率を引き下げ=ロンドン為替

 中国人民銀行が外貨預金準備率を1%ポイント引き下げると発表した。これを受けて欧州株などが下げ幅を縮小、為替市場では円売り反…

「軽トラ」運転者の平均年齢は?市場調査でコロナ禍の影響が浮き彫りに – ライブドアニュース – livedoor

隔年実施の市場調査で、コロナ禍の影響が浮き彫りにクルマの使い方は、コロナ禍でどう変わったのでしょうか。そうした疑問に対して、かなり明確なデータが出てきました。ダイハツの軽トラ「ハイゼットトラック」

【明日の好悪材料】を開示情報でチェック! (4月25日発表分) – Yahoo!ファイナンス

【好材料】  ――――――――――――

■極洋 <1301> [東証P]
前期配当を10円増額修正。

■大東建託…

みずほシステム障害、今は1時間で対応 「だからできてるって言ってるじゃない」2月に就任の木原正裕FG社長 – 東京新聞

みずほフィナンシャルグループ(FG)の木原正裕社長(56)は本紙のインタビューで、顧客に影響の大きいシステム障害が今後発生した場合には…

入浴剤「バスメロディー」などを製造のアサヒ晶脳が破産へ 負債は調査中 – ライブドアニュース – livedoor

アサヒ晶脳の本社(TSR撮影)アサヒ晶脳(株)(TSR企業コード:400182939、法人番号:5180001045757、北名古屋市沖村六反68、設立1955(昭和30)年10月、資本金1000万円、長江幸雄社長)と関連の(株

世界最大規模の「無印良品」が広島にオープン! 広島ならではの大注目商品を買ってきました / 無印として初の取り組みにも注目! – ロケットニュース24

2022年4月22日、世界最大規模の売り場面積を誇る「無印良品」が広島市にオープンした。同店ではほぼ全ての無印良品の商品を購入できるうえに、地産品の販売や地元を楽し …

日産が“世界初”自動運転技術公開 4つのデモを実況付きで公開!(2022年4月25日) – ANNnewsCH