Skip to content

Instantly share code, notes, and snippets.

@mnzk
mnzk / cant_Method_pipeline.ps1
Last active August 29, 2015 13:56
メソッドでもパイプラインしたい。(できない)
# 追加したメソッドをパイプラインで使いたいが...
$foo = "abc" | Add-Member ScriptMethod Repeat{
param(
[Parameter(ValueFromPipeline=$True)]$n
)
$this * $n
} -PassThru
$foo.Repeat(5) #=> abcabcabcabcabc
@mnzk
mnzk / method_pipeline.ps1
Last active August 29, 2015 13:56
メソッドでパイプラインできた。(ただしメソッドの引数は1つに限定)
# 追加したメソッドをパイプラインで使いたい
$foo = "abc" | Add-Member ScriptMethod Repeat{
param($n)
$this * $n
} -PassThru
#Helper で対応
filter Invoke-Method($method){
$method.Invoke($_)
@mnzk
mnzk / tenki.clj
Last active August 29, 2015 13:56
天気予報逆引き。 (tenki.jp の http://tenki.jp/webservice/rss/ より)
;;-*- coding: utf-8 -*-
(ns tenki.core
(:require [clojure.xml :as xml]
[clojure.zip :as zip]
[clojure.data.zip.xml :refer :all]
[clojure.core.cache :as cache]))
(defn city-url
[city-id]
(->> city-id (format "http://tenki.jp/component/static_api/rss/forecast/city_%d.xml")))
@mnzk
mnzk / co_fibo.cpp
Last active August 29, 2015 13:56
Boost.Coroutineでフィボナッチ + itertoolsっぽい(?)drop
/*
* C++11 (VisualStudio 2013 Express Edition)
* boost 1.55.0
*/
#include <iostream>
#include <boost/coroutine/all.hpp>
#include <boost/range/irange.hpp>
#include <boost/multiprecision/cpp_int.hpp>
@mnzk
mnzk / co_itertools.cpp
Last active August 29, 2015 13:56
Boost.Coroutine で itertoolsモドキ、その2
/*
* C++11 (VisualStudio 2013 Express Edition)
* boost 1.55.0
*/
#include <iostream>
#include <string>
#include <vector>
#include <boost/coroutine/all.hpp>
@mnzk
mnzk / primes.ps1
Last active August 29, 2015 14:06
#
# 既知の素数リストを保存しているファイルを読み込み
# 続きから素数を列挙する
#
# 素数リストファイルは
# primes000.txt, primes001.txt, primes002.txt ...
# と複数ファイルに分割されていても良い。
# ファイル番号の順に内容を連結した時、素数が昇順に並んでいること。
# 新たな素数は、ファイル番号最大+1のファイル名で保存します。
#
(defn k
([x] (format "%sかわいいよ%" x))
([] (k "λ")))
@mnzk
mnzk / member-name-example.rkt
Last active August 29, 2015 14:10
Racketのdefine-member-nameの例
#lang racket
;;
;; queue%クラスのメソッド enqueue, dequeue を producer%, consumer%だけに公開している。
;; let の外部からはこの2メソッドは見えない。
;;
(define-values (queue% producer% consumer%)
(let ()
(define-member-name enqueue (generate-member-key))
@mnzk
mnzk / draw-text-rotate.rkt
Last active August 29, 2015 14:11
draw-text における文字回転の例
#lang racket
(require racket/gui)
(define font (make-font #:size 40
#:size-in-pixels? #t
#:face "HGGyoshotai"))
(define font-size (send font get-point-size))
(define font-size-half (/ font-size 2))
(define rotate-text-hash '#hash(("ー" . #t)))
(ns program
(:import System.IO.EndOfStreamException)
(:import clojure.lang.Compiler+CompilerException)
(:gen-class))
(defn try-eval [line v]
(let [v (conj v (str "\n" line))]
(try
[true (-> (apply str v) read-string eval) []]
(catch EndOfStreamException e [false nil v])