Skip to content

Instantly share code, notes, and snippets.

View bromne's full-sized avatar

bromne

View GitHub Profile
@bromne
bromne / js-test.html
Created January 6, 2021 17:22
2005-12-04
<html><head><title>test</title>
<script language="JavaScript">
pa=new Array();
page=new Array();
function changeDesign(cno){
pa[0]=document.getElementById('page[0]');
pa[1]=document.getElementById('page[1]');
pa[2]=document.getElementById('page[2]');
pa[0].style.display='none';
pa[1].style.display='none';

白魔道士の回復アクションの回復力と消費 MP

アクション名 回復力 消費 MP 回復力(%) 回復力/MP(%)
ケアル 450 400 100.00 100.00
メディカ 300 1000 66.66 26.66
ケアルラ 700 1000 155.55 62.22
リジェネ 1200 500 266.66 213.33
ケアルガ 550 1500 122.22 32.59
メディカラ 800 1300 177.77 54.70
const VWL = new Set(["A", "E", "I", "O", "U"]);
function abbr(name) {
if (name.length < 3)
return null;
const NAM = name.toUpperCase();
const HEA = NAM[0];
const TAI = Array.from(NAM.substr(1));
const FLT = TAI.filter(CHR => !VWL.has(CHR)).join("");
if (FLT.length >= 2)
@bromne
bromne / hasFooOrBar.js
Last active May 31, 2018 10:59
n × 2 and 2 × n
// s は、文字列の平均的な長さ
// n × 2
// => 変数確保: 2, 整数比較: 2n, 再代入: 2n, 配列要素取得: 2n, 文字列比較: 2sn
const hasFooOrBar = function(items) {
// 変数確保: 1, 整数比較: n, 再代入: n
for (let i = 0; i < items.length; i++) // * n
// 配列要素取得: 1 (* n), 文字列比較: s (* n)
if (items[i] === "foo");
return true;
@bromne
bromne / heap_sort.js
Last active March 4, 2018 10:26
ソートアルゴリズム
let parent = i => Math.floor(i - 1);
let left = i => (i + 1) * 2 - 1;
let right = i => (i + 1) * 2;
let swap = function (items, i, j) {
let temp_i = items[i];
items[i] = items[j];
items[j] = temp_i;
};
let get_largest_node = function (items, i, heap_size) {
@bromne
bromne / NestedParallelStream.scala
Last active November 17, 2017 00:47
ネストされた並列ストリームでは、ScalaのストリームとJavaのストリームで挙動が異なる
import java.util.stream.IntStream
object NestedParallelStream {
def main(args: Array[String])]: Unit = {
iterateScalaStream()
iterateJavaStream()
}
def iterateScalaStream(): Unit = {
Stream.range(0, 100)
@bromne
bromne / gist:9cc125bb1389f1b459a6c4a040b66ad0
Created October 26, 2017 06:18
帰納的可変長多相型(recursive variable-length polymorphic type)
class Router<T...> {
portions: [String];
when (T) {
case <>: {
}
otherwise: {
leading: Router<* T.init>;
parser: Parser<T.last>;
}
@bromne
bromne / tailcall.js
Created October 24, 2017 03:59
末尾呼び出し最適化
// 参考
// 『Java による関数型プログラミング』7章
let TailRec = {
done: function(result) {
return {
complete: true,
result: result
};
},
@bromne
bromne / newlang.md
Last active September 18, 2017 03:19
Concept of the new language

新しい言語

**新しい言語(仮称)**のコンセプトです。

パラダイム

  • 静的型つけ: 型の整合性は実行前に完全に検証される
  • クラスベースオブジェクト指向 + 関数型: グローバルな関数よりもobject.method(...)という書き方を優先する,高階関数を多用する
  • 高級: 典型的な表現は簡単な書き方で記述できる
  • 空値安全: 空値(null)の存在は隠ぺいされる
@bromne
bromne / linq-type-unsafe.cs
Created December 28, 2016 05:52
Linq: type-unsafe
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
IEnumerable values = new List<string>() { "foo", "bar" };