Skip to content

Instantly share code, notes, and snippets.

@abcsharp
abcsharp / buggy_code.cpp
Created June 30, 2011 11:44 — forked from KOBA789/buggy_code.cpp
情報の授業でやったbuggyな練習問題を仕様通りに動作させてみた
#include <iostream>
using std::cout;
using std::cin;
int main(void)
{
int time;
cin>>time;
if(time>=0&&time<24){
if(t<=11) cout<<"おはよう";
else if(t==12) cout<<"正午";
@abcsharp
abcsharp / Lambda.cpp
Created October 9, 2011 16:58
なんかよくわからないけど突発的にC++11のラムダ式を乱用してみた
#include <functional>
#include <iostream>
int main(void)
{
auto Func=[](int a){
return [=](int b){
return [=](int c){
return a+b+c;
};
@abcsharp
abcsharp / Factorial.cpp
Created October 15, 2011 17:08
ラムダ式で階乗を求めるやつ
#include <functional>
#include <iostream>
using std::function;
using std::cout;
int main(void)
{
function<int(int)> LambdaFactorial=[&](int n)->int{!n?1:n*LambdaFactorial(n-1);};
cout<<LambdaFactorial(5);
@abcsharp
abcsharp / main.cpp
Created October 20, 2011 17:30
Brainfuckインタプリタ
#include <iostream>
#include <cstring>
#include <memory>
#include <stack>
using std::cout;
using std::cin;
using std::endl;
using std::auto_ptr;
using std::stack;
@abcsharp
abcsharp / gist:1305736
Created October 22, 2011 07:17
Brainfuckインタプリタ(ラムダ式+map使用版)
#include <iostream>
#include <map>
#include <functional>
#include <cstring>
using std::cout;
using std::cin;
using std::endl;
typedef std::pair<const char,std::function<void(void)>> Operator;
@abcsharp
abcsharp / gist:1335313
Created November 2, 2011 23:39
某C++入門書のstd::mapの使用例として載っている間違ったコード
/*
以下のコードではmapのキーとしてchar*が使われているが、
ポインタ型の比較は持っているアドレスが等しいかどうかで判断するので、意図した動作はしない。
この場合正しくはstd::stringを使うべき。
しかし、この入門書ではVisual C++で開発している前提なので、動きが異なってくる。
理由は「文字列プール」という等価な文字列リテラルは全て同一の実体として
(要するにコード中に"A"というリテラルが複数あった場合、それらのアドレス全て同じになる)
扱うように最適化する機能が有効になっている為に、当初意図していた通りに動作してしまう。
@abcsharp
abcsharp / gist:1543226
Created December 31, 2011 07:21
アクセス違反とともに2011年の幕を閉じる
/*
2011.exe ソース
1秒毎にUNIXタイムスタンプを表示し、2011年12月31日23時59分59秒(JST)になるとアクセス違反起こして落ちます。
※パソコンの時間がずれていると落ちるタイミングもずれるので注意。コンパイル・実行は自己責任の下でお願いします。
作者:abc(@abcsharp)
*/
#include <ctime>
#include <iostream>
#include <Windows.h>
@abcsharp
abcsharp / gist:1548049
Created January 1, 2012 19:00
Brainfuckインタプリタ(std::map+ラムダ式使用)改良版
#include <iostream>
#include <map>
#include <functional>
#include <string>
#include <memory>
int main(void)
{
typedef std::pair<const char,std::function<void(void)>> Op;
std::map<const char,std::function<void(void)>> Ops;
@abcsharp
abcsharp / gist:1560244
Created January 4, 2012 14:22
brainfuckインタプリタ(短くなった)
#include <iostream>
#include <map>
#include <functional>
#include <array>
int main(void)
{
std::map<const char,std::function<void(void)>> Ops;
std::array<unsigned char,30000> Source,Memory;
auto Position=Source.cbegin();
auto Ptr=Memory.begin();
@abcsharp
abcsharp / gist:2240829
Created March 29, 2012 17:53
渡されたテキストファイルから重複している行を削除し別のファイルに出力する
module Script
open System.IO
[<EntryPoint>]
let main (args : string[]) =
if args.Length = 2 then
let keys =
File.ReadAllLines(args.[0])
|> Array.sort
|> Array.fold