Skip to content

Instantly share code, notes, and snippets.

import {Pair, State} from "./state"
// ----------------------
// 自動販売機の実装
enum Input {
Coin,
Turn
}
@kkismd
kkismd / monoid.php
Last active February 15, 2019 01:33
<?php
declare(strict_types=1);
interface Monoid
{
public function canBeInstance($a): bool;
public function append($a1, $a2);
public function zero();
}
@kkismd
kkismd / deco.py
Last active August 23, 2019 10:19
from typing import Optional
def maybe(func):
def fn(*args, **kwargs):
try:
ret = func(*args, **kwargs)
if ret:
return [ret]
else:
return[]
from typing import List
def parseInt(input: str) -> List[int]:
try:
return [int(input)]
except ValueError:
return []
def findUser(code: int) -> List[dict]:
users = {

VTL-2 for the65c02(VTLC02)

本文書は、Michael T. Barry作のソフトウェア「VTLC02」 ソースコード中のコメントを日本語に翻訳したものです。

また見出しは、Markdownに整形するにあたり翻訳者が便宜上つけたものです。

原文リポジトリのURL https://github.com/barrym95838/6502-Assembly/blob/main/VTLC02

@kkismd
kkismd / dump.vtl
Last active February 21, 2023 02:14
100 ?="start address? ";
110 A=?
120 ?="end arress? ";
130 E=?
150 :1)=#
160 ?=A
170 ?=": ";
180 I=0
190 :2)=#
200 <=A+I
@kkismd
kkismd / Compiler Transcript
Created May 13, 2023 11:04
EMUZ80-6502RAM VTLC02-GM ASCIIART Compile sample
CALL$EA00
==02000
&=0
10 F=50
20 Y=-12
30 X=-39
40 C=X*229/100
50 D=Y*416/100
60 A=C

Q

パーサーの定義の最後にある (input) の文法的な意味を教えてください

A

Rustでは、関数は値を返すことができますが、その返り値は最後に評価された式です。この特性を利用して、関数の本体を括弧で囲むことで、その関数が別の関数に引数として渡されることを可能にします。このパターンは、高階関数(他の関数を引数として取る関数)を使用する際によく見られます。

ここでの (input) は、nom パーサーコンビネータの一部で、これは関数を返します。この関数は、入力文字列(ここでは input)を引数として取り、パース結果を返します。つまり、 (input) はパーサー関数を実行しています。

例えば、以下のコードを見てみましょう: