I hereby claim:
- I am ieda on github.
- I am iery (https://keybase.io/iery) on keybase.
- I have a public key ASBeY55jIhV6m6zEK8vJqtgq-VOsOSoMj1xrGGVIvrjppAo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
// sequenceStr: "a >> b" for press A(, release A), press B, onKeyDownCallback. | |
// TODO: Support onKeyUpCallback. | |
// INFO: Timeout is only to break sequence. Wrong key press does NOT break sequence. | |
function bindSequence(sequenceStr, onKeyDownCallback, onKeyUpCallback=null, timeoutToNextKey=500) { | |
var sequenceDelimiter = ">>"; | |
var keys = sequenceStr | |
.split(sequenceDelimiter) | |
.map(el => el.trim()); | |
//console.log("bindSequence", keys); | |
var baseContext = keyboardJS.getContext(); |
=begin | |
以下のコードでは、数値を表すモデルを、 | |
イミュータブルなオブジェクトになるような定義と、 | |
イミュータブルではないオブジェクトになるような定義の | |
2つで実装している。 | |
2つのオブジェクトに対して、ほぼ同じ操作を行い、 | |
その振る舞いの違いから知見を得ることを想定している。 | |
=end | |
class ImmutableNumber |
RegexpBuilder.new.build({ | |
ignore_case: true, | |
begin_with: "A", | |
contains: [ | |
# order sensible | |
[:contains, "B"], | |
[:any], | |
[:contains_any, "D", "E"], | |
] | |
end_with: "C", |
# Code adapted from http://bytes.com/topic/c-sharp/answers/240995-normal-distribution#post980230 | |
module Normdist | |
def self.normdist x, mean, std, cumulative | |
if cumulative | |
phi_around x, mean, std | |
else | |
tmp = 1/((Math.sqrt(2*Math::PI)*std)) | |
tmp * Math.exp(-0.5 * ((x-mean)/std ** 2)) | |
end | |
end |
function event::onChannelText(prefix, channel, text) | |
{ | |
stext = text.match(/.*(((行|い)き)|((食|た)べ)|((飲|の)み)|((帰|かえ)り))たい$/); | |
if (stext != null) { | |
target = text.match(/.*[^行き食べ飲のみ帰かえりたい]/); | |
if (target == null || target == "もう") { | |
target = "おうち" | |
} | |
send(channel, " |←" + target + "| ┗(^o^ )┓三"); | |
} |