Skip to content

Instantly share code, notes, and snippets.

@7shi
7shi / fsc-x86.cpp
Last active August 29, 2015 14:05
[C++]fsc wrapper for adding `--platform:x86`
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <string>
#include <vector>
#define FSC "C:\\Program Files (x86)\\Microsoft SDKs\\F#\\3.0\\Framework\\v4.0\\fsc.exe"
int main(int argc, const char *argv[], const char *envp[]) {
std::vector<const char *> args;
@7shi
7shi / SplitHalf.fsx
Last active August 29, 2015 14:05
[F#]DnDで画像を分割 (CC0)
#r "System"
#r "System.Drawing"
#r "System.Windows.Forms"
open System
open System.IO
open System.Drawing
open System.Drawing.Imaging
open System.Windows.Forms
@7shi
7shi / TrimImages.fsx
Last active August 29, 2015 14:05
[F#]複数画像を同じ範囲で切り抜き (CC0)
#r "System"
#r "System.Drawing"
#r "System.Windows.Forms"
open System
open System.IO
open System.Drawing
open System.Drawing.Imaging
open System.Windows.Forms
@7shi
7shi / ebnf.fsx
Created September 13, 2014 08:42
[F#]EBNFを実装
open System
// expr ::= term (('+' term) | ('-' term))*
let rec expr(src:string) =
printfn "expr %s" src
let mutable t, rest = term src
let mutable flag = true
while rest <> "" && flag do
match rest.[0] with
| '+' -> let t', rest' = term rest.[1..]
var fs = require("fs");
function convLE(len, v) {
var ret = "";
for (var i = 0; i < len; ++i) {
ret += String.fromCharCode(v & 0xff);
v >>= 8;
}
return ret;
}
module Main where
import Test.HUnit
import System.IO
import Data.Ratio
data Expr = N Rational
| Var String Rational Rational
| Add [Expr]
| Mul [Expr]
@7shi
7shi / DisAsm.hs
Last active August 29, 2015 14:06
[Haskell]8086逆アセンブラ開発入門 http://qiita.com/7shi/items/026839b2bc193dbfb0cb
module DisAsm where
import Data.Bits
import Data.Char
import Hex
regs = [reg8, reg16]
reg8 = ["al", "cl", "dl", "bl", "ah", "ch", "dh", "bh"]
reg16 = ["ax", "cx", "dx", "bx", "sp", "bp", "si", "di"]
regad = ["bx+si", "bx+di", "bp+si", "bp+di", "si", "di", "bp", "bx"]
@7shi
7shi / gist:2db9a4f24fefc3358c28
Last active August 29, 2015 14:06
[JavaScript][F#][Haskell]クロージャでカウンタ
function counter() {
var c = 0;
return function() {
return ++c;
};
}
var f = counter();
console.log(f());
console.log(f());
@7shi
7shi / gist:ca568eeaeef88700f5dd
Last active August 29, 2015 14:06
[Haskell]=<<
{-1-} tmp <- foo
bar tmp
{-2-} tmp <- foo -- 不正なレイアウト
bar tmp
{-3-} bar tmp <- foo -- 擬似コード
{-4-} bar =<< foo
@7shi
7shi / makesh3exe.js
Last active August 29, 2015 14:06
[JavaScript]SH-3のEXEファイルを作成 https://github.com/shigemk2/bfexe
/**
* 指定されたlenだけバイト文字列vをリトルエンディアン変換する
* LEはリトルエンディアンの意
*
* @method convLE
* @param {Int} len バイト数
* @param {ByteString} v バイト文字列
* @return {String} ret リトルエンディアン変換されたバイト文字列
*/
function convLE(len, v) {