いまさらですが、あけましておめでとうございます。

happy new language

年開けから新しくプログラミング言語(Rust)始めました。(ってわけでもない)

雑に rust book 2nd edition を一通り読み終えたので、 言語処理100本ノック をやりはじめました。 とりあえず第1章が終ったので、メモとしてのこします。 基本的に Rust (に限らず)でやりたいことがとくにないので ちょうどよさそうな勉強 として自然言語処理を選択しています。

躓いたところ

躓いていないところがないです。 まあやっていくうちに以下二つは常に書いておくと楽になるかなと。

// 1文字毎
fn chars(string: &str) -> Vec<char> {
    string.chars().collect::<Vec<char>>()
}

// 1単語毎
fn words(sentence: &str) -> Vec<&str> {
    sentence.split(' ').collect::<Vec<&str>>()
}

00. 文字列の逆順

これは簡単で(でもなかった)、1文字ずつ分解して反対化したあと String にします。

fn reverse_string(string: &str) {
    println!("{}", string.chars().rev().collect::<String>());
}

01. 「パタトクカシーー」

これも簡単で、1文字ずつ分解して抜き出します。(絶対違う)

fn main() {
    let c = "パタトクカシーー".chars().collect::<Vec<char>>();
    println!("{}{}{}{}", c[0], c[2], c[4], c[6]);
}

おわり

とりあえず2問解いてみたけど、自然言語処理 && Rust 難しい。