Skip to content

Instantly share code, notes, and snippets.

View 0918nobita's full-sized avatar
🐫
I love functional programming.

Kodai Matsumoto 0918nobita

🐫
I love functional programming.
View GitHub Profile
@0918nobita
0918nobita / dfs.ts
Created April 20, 2024 10:55
TypeScript で DFS
import fs from 'node:fs/promises';
type Graph = Array<Set<number>>;
const initDfs = (n: number, graph: Graph) => {
const seen: boolean[] = Array(n).fill(false);
const dfs = (vertex: number) => {
seen[vertex] = true;
{"version":"2.3.0","records":[{"operator_id":"char_102_texas","attribute":"LEVEL_ELITE_1","current":56,"target":70,"hidden":false,"selected":false},{"operator_id":"char_102_texas","attribute":"ELITE_RANK","current":1,"target":2,"hidden":false,"selected":false},{"operator_id":"char_102_texas","attribute":"LEVEL_ELITE_2","current":1,"target":40,"hidden":true,"selected":false},{"operator_id":"char_222_bpipe","attribute":"ELITE_RANK","current":1,"target":2,"hidden":false,"selected":false},{"operator_id":"char_222_bpipe","attribute":"LEVEL_ELITE_2","current":1,"target":40,"hidden":true,"selected":false},{"operator_id":"char_290_vigna","attribute":"MASTER_SKILL_2","current":0,"target":1,"hidden":false,"selected":false},{"operator_id":"char_290_vigna","attribute":"MASTER_SKILL_2","current":1,"target":2,"hidden":false,"selected":false},{"operator_id":"char_290_vigna","attribute":"MASTER_SKILL_2","current":2,"target":3,"hidden":false,"selected":false},{"operator_id":"char_476_blkngt","attribute":"LEVEL_ELITE_1","curre

Keybase proof

I hereby claim:

  • I am 0918nobita on github.
  • I am 0918nobita (https://keybase.io/0918nobita) on keybase.
  • I have a public key ASANqlvay4ibIMSQ8pn7wI_cSIknxGu6irUoD0kqqRQ9mAo

To claim this, I am signing this object:

13
45
120
120
120
120
120
120
60
45
import { VFC, useMemo, useCallback, useState } from 'react';
export const App: VFC = () => {
const [inputA, setInputA] = useState('');
const [inputB, setInputB] = useState('');
const onChangeA: React.ChangeEventHandler<HTMLInputElement> =
// HTML 要素のコールバック関数が再描画のたびに生成し直しになるのを防ぐために useCallback を使う
useCallback(
(e) => { setInputA(e.target.value) },
[<Struct>]
type State =
{ Crab: int
; Shrimp: int
; Squid: int
}
let (|Crab|Shrimp|Squid|Other|) input =
match input with
| "🦀" -> Crab
@0918nobita
0918nobita / Decompiled.cs
Last active December 10, 2020 00:29
Tail-call optimization
using Microsoft.FSharp.Core;
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: FSharpInterfaceDataVersion(2, 0, 0)]
[assembly: AssemblyVersion("0.0.0.0")]
[CompilationMapping(SourceConstructFlags.Module)]
public static class @_
@0918nobita
0918nobita / main.s
Created August 15, 2020 08:13
Assembly (x86-64, intel syntax)
.intel_syntax noprefix
.globl main
# 1 + 2 の結果を exit コードとして返す
# rsp はスタックポインタ (push / pop 命令で増減する)
# rbp はベースポインタ (関数内でスタックを扱う際に基準となるメモリアドレス)
# スタックはメモリアドレスの小さい方向に伸びる
# mov dest, src
# フラグの変更なし
#lang racket/base
(require racket/function)
(define k 'bool) ; 継続
(define continue? #f)
(define (resume)
(set! continue? #t)