えー、12/12の9時からAtcoder beginner contest #003が開催されました。 自分はそれにちょっと色々あって出遅れる形で参加したのですが、C問題をやってるときに色々詰まって終わった後に他の人の回答を見たら素晴らしく読みやすくて反省する次第でありました。そのことを書いてみたいと思います。 ------------------------------------------------------------------------------------- 追記の追記: @no_maddojjjjjj 確かにモナドにはなるんですが、それよりもF#のパイプライン演算子を意識して書きました。OCamlにも4.01.0からPervasivesに入ったのでお勧めです。— ろんだ (@fetburner) 2013, 12月 13 書かれた方僕がフォローしている方でした、気付
キーワード C言語, 初期化されていない変数, 静的確保, ゼロ初期化, スタートアップ これだけは覚えよう すべての初期化していない静的に確保される変数は.bssセクションに入っていて、0で初期化される。 すべての初期化していない静的に確保される変数が0で初期化されると思っていると、上司に怒られる。 .bssって何? .bssセクションはセクションのひとつです(セクションとは何かが知りたければ、infoを読みましょう)。名前は「Block Started by Symbol(シンボル名で示された番地から始まるメモリブロック)」の頭文字からきています。 このセクションは、ELF(Executable and Linkable Format)では次のように定義されています。 .bss This section holds uninitialized data that contribute
「プログラミングの基礎」では、ターミナル環境やOCaml環境等を'EUC'及び'LANG=en_US.ISO88591'に切り替えろ書いているが、どうも表示が文字化け及びtestが失敗して上手くうごかなかった。 ので最近のLinux環境*1にOCaml側を合わせるということで、OCaml側をUTF-8に切り替える*2。 .ocamlinitを編集 change : OCaml default character encoding with UTF-8 · murasesyuka/dotfils@5f6d38e · GitHub let printer ppf = Format.fprintf ppf "\"%s\"";; #install_printer printer DLしたmetro.mlをUTF-8に修正 適当なエディタでUTF-8で変換して保存する*3 メモ書き change :
あれはおそらく2013年、Perl入学式に初めて参加する直前頃だったと思うのだけど、以下の本を購入し、 プログラミングの基礎 (Computer Science Library) 作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック: 409回この商品を含むブログ (126件) を見るそこに示されるまま、OCamlのインタプリタで日本語を出力するためにターミナルの文字コードをEUCに設定したら、その後に行ったPerl入学式で出力が文字化けしてしまい、「どうしてですかね……?」と聞いたら「端末の設定が問題なんじゃないかな!?」とサポーターさんから指摘され*1、「ああ、あのOCamlの設定でやったやつか……」と、おかげで少なからぬ時間を費やしてしまったことがあまりよくない印象として残ってしまい、その後同書を開くことはほとんどなかった
(注:2017/04/27、いただいたフィードバックを元に翻訳を修正いたしました。) この記事では、皆さん(特にC言語のプログラマ)に「自分はCを分かっていなかった」と気付いてもらうことを目標にしています。 Cの落とし穴は、思っているよりもずっと身近なところにあります。ちょっとしたコードにも 未定義の動作 が潜んでいることを以下で示しましょう。 この記事はQ&A形式になっており、それぞれの例題は独立したソースコードとして扱ってください。 1. Q: これは正しいコードでしょうか? (変数の二重定義エラーが発生するでしょうか。上述の通り、これは独立したソースファイルであり、関数本体や複合ステートメントの一部ではありません) 解答 A: 正しいコードです。1行目は仮定義であり、2行目でコンパイラが処理した後に “定義” になります。 2. extern void bar(void); void
BlackBerry QNX officially released version 7 of its Software Development Platform (SDP) last month. This release is the first to support 64-bit architectures, including x86-64 and aarch64. It also brings with it new features and over two years stability fixes. As is the case for any release of an operating system that is not backwards-compatible with an earlier version, we were faced with the prob
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
「とあるブランチで作業中だけど、いますぐやりたいことができた。作業がすごく中途半端だからコミットはしたくない。」 というときに、stashが使えます。 stashを使用すると、コミットしていない変更を退避することができます。 stashで現在の変更を退避して、今すぐやりたい作業をして、退避させていた変更を戻して作業を再開することができます。 変更を退避する コミットしていない変更がある状態で上記のコマンドを実行すると、変更した部分が退避されます。 ワーキングディレクトリ上は差分がない状態になります。 「コミットしていない変更」とは、addしたものもaddしていないものもどちらも含まれます。 -u は --include-untracked の略です。新規作成ファイル(追跡対象に含まれていないファイル)も退避することができます。 退避した作業の一覧を見る 以下のコマンドで退避した作業の一覧を
他の多くの言語と同様、Rustの字句解析器は貪欲にトークンを分割する。しかし構文解析の途中で必要に迫られて、さらに細かくトークンを分割する場合がある。 先にまとめ 以下の場合は、構文解析のタイミングで字句がさらに細かく分割される。 式の位置に、前置の || が出現した場合。 型・式・パターンの位置に、前置の && が出現した場合。 ジェネリクス引数や、修飾パスが期待される位置に、 << が出現した場合。 ジェネリクス引数や修飾パスの内部の > が期待される位置に、 >>, >=, >>= が出現した場合。 本編 他の多くの言語と同様、Rustの字句解析器は貪欲にトークンを分割する。 これは例えば次のようなコードを実行するとわかる。 macro_rules! stringify_each { ($($x:tt)*) => { stringify!($($x)/ *) } } fn main(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く