Skip to content

Instantly share code, notes, and snippets.

@popon-01
popon-01 / dmm_adc_15.md
Last active December 19, 2019 02:50
関数リアクティブプログラミング(FRP)と自己の紹介

関数リアクティブプログラミング(FRP)と自己の紹介

この記事はDMMグループ'20卒内定者アドベントカレンダー15日目の記事です.

現在修士2年,プログラミング言語の研究室に所属していて関数リアクティブプログラミング (Functional Reactive Programming, FRP) というプログラミングパラダイムの研究をしています.修論も佳境!終わらない実装!ということで自己紹介がてらFRPの簡単な紹介でも書こうかなと思います.

関数リアクティブプログラミング(FRP)とは

関数リアクティブプログラミング(FRP)はリアクティブなソフトウェアの記述をサポートするプログラミングパラダイムです.

アプリケーションのUIや制御システムなど,外部からの入力に応答するようなソフトウェアの場合にはキー入力やセンサーの値などの非同期的な入力を処理する必要があります.非同期的な入力に対する処理はポーリング・コールバック関数・マルチスレッディングなどで実装されるわけですが,これらが組み合わさってくると実行の流れが把握しづらくなり,プログラムが複雑になってしまいます.

@popon-01
popon-01 / iq1_adc2_day8.md
Last active May 9, 2022 12:03
lispのマクロについて

IQ1でもASTがいじりたい

この記事はIQ1の2まいめっ Advent Calendar 2018 8日目の記事です。
最近lispを書いていなくて寂しくなって来たのでlispのマクロのことでも思い出していきたいと思います。
Common Lispが中心です。

S式について

lisp系の言語はS式と呼ばれるフォーマットで記述されます。リストの先頭を手続き、残りを引数としてプログラムのASTを記述するのがS式です。

> (* 3 (- 5 2))
9
#include<iostream>
#include<vector>
#include<limits>
#include<utility>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef pair< int,int > P;
const int inf = numeric_limits< int >::max();
const int mod = 1e9 + 7;