Skip to content

Instantly share code, notes, and snippets.

const p = (s, n) => {
const r = []
for (let i = 1; i <= s; i++) {
if (i < n - 5) {
if (i == 1) r.push(i)
continue
} else if (i > n + 5) {
if (i == s) r.push(i)
continue
} else if (i == n + 5) {
@amo12937
amo12937 / file0.js
Created June 28, 2018 07:57
同じような if 文が複数箇所に現れる場合、Strategyパターンを検討しよう。 ref: https://qiita.com/amoO_O/items/9f7594513e2915eaf502
const func = (type) => {
if (type == 'foo') {
// ...
} else { // type == 'bar'
// ...
}
// ...
// ...
if (type == 'foo') {
// ...
trait SmartString {
def get: String
}
class RawString(val original: String) extends SmartString {
def get: String = original
}
class HtmlString[T <: SmartString](val original: T) extends SmartString {
lazy val escapedString = original.get
@amo12937
amo12937 / file0.js
Last active December 18, 2017 12:50
任意のURLに1行メモを残す1行JavaScript ref: https://qiita.com/amoO_O/items/2690a3644c703c23c334
javascript:(function(s,k,v,w){v=s.getItem(k)||"";w=prompt(k,v);if(w!=null)s.setItem(k,w)})(localStorage,"$Memo> "+location.href)
@amo12937
amo12937 / file0.txt
Created September 12, 2017 13:05
【圏論メモ】各点Kan拡張と米田埋込にまつわるある定理の証明 ref: http://qiita.com/amoO_O/items/72be5b8639ec0f119f31
\begin{CD}
\textbf{D} @>\mathcal{F^\dagger E}>> \textbf{U} \\
@A\mathcal{F}AA \phantom{\eta}\Big\Uparrow\eta @VV\mathcal{id}_\textbf{U}V \\
\textbf{C} @>\mathcal{E}>> \textbf{U} \\
\end{CD}
@amo12937
amo12937 / file0.scala
Last active June 26, 2017 10:24
Scala 版 Extensible Effects 解説 Tree モナド と Choose モナド(List モナド)編 ref: http://qiita.com/amoO_O/items/166e2fdc67d0b1a51c9e
type Pair[A] = (A, A)
type Tree[A] = Freer[Pair, A]
def leaf[A](a: A): Tree[A] = Pure(a)
def node[A](x: Tree[A], y: Tree[A]): Tree[A] = Freer((x, y): Pair[Tree[A]])
@amo12937
amo12937 / file0.scala
Created June 17, 2017 12:54
Generic 型の分類(モナド、ファンクタの解説)Scala 版 ref: http://qiita.com/amoO_O/items/f31c55af583a92a8ebe3
List[A] // A 型のリスト
Future[A] // 将来 A 型の値を保持する何らかの処理
Option[A] // A 型の値を保持または何も保持していない状態を表す型
type Pair[A] = (A, A) // A 型 の値のペア
type Const[A] = Unit // (型 A に依らず) 常に同じ値を持つ型
type Reader[E, A] = E => A // E 型の値を受け取り A 型の値を返す関数
type AtoX[A, X] = A => X // A 型 の値を受け取り X 型の値を返す関数
type Cont[A, R] = (A => R) => R // A 型 の値を受け取り R 型の値を返す関数 を受け取り R 型の値を返す関数
type Catch[A, X, Y] = ((A => X) => Y) => Option[A] // A 型 の値を受け取り X 型の値を返す関数 を受け取り Y 型の値を返す関数 を受け取り Option[A] 型の値 を返す関数
@amo12937
amo12937 / TweetButton.jsx
Last active January 1, 2017 16:51
React で Tweet Button(widgets.js リロードしない版) ref: http://qiita.com/amoO_O/items/8bc1feaa98bcc08632b3
"use strict";
import React from "react"
export default class TweetButton extends React.Component {
componentDidMount() {
twttr.widgets.load(this.refs.tweetButton);
}
render() {
@amo12937
amo12937 / Timer.js
Created January 1, 2017 09:09
現在時刻に依存しないタイマーモデル ref: http://qiita.com/amoO_O/items/d845b6101a931f698b72
"use strict";
import StateMachine from "javascript-state-machine"
/*
* waiting | running | finished
* ------------|------------*-----------------|------------
* `startTime `currentTime `endTime
*/
@amo12937
amo12937 / file1.txt
Created November 7, 2016 08:05
.git/hooks/pre-push 覚書 ver.2 ref: http://qiita.com/amoO_O/items/141f6fd7ca499575bfd2
bundle exec rubocop
cop=$?
bundle exec rspec spec
pec=$?
exit $(($cop || $pec))