この文書は書きかけです
Taktはテキストで音楽を記述するプログラミング言語で、Taktで書かれたコードをTaktインタプリタで実行するとMIDIを生成します。 Emacsプラグインが付属していたり、midiからソースコードを逆生成できたりします。
PMMLという言語の後継に当たり、似た構文です。
| #!/bin/bash | |
| # ref: CUI超お手軽英語辞書 - capriccioso String Creating(Object something){ return My.Expression(something); } (http://d.hatena.ne.jp/its_out_of_tune/20120610/1339311044) | |
| # + メモ化 & 言及英単語を再帰的呼び出し & 発音 & クリップボード監視翻訳 | |
| # 複数の語を分かち書きしたものからなる節を調べるときは語と語の間を(空白ではなく)プラス記号で区切る | |
| # 例: Haskell Curry を調べるときは `je haskell+curry` | |
| ISNEW=false |
| module Combinators where | |
| b : {A B C : Set} -> (B -> C) -> (A -> B) -> A -> C | |
| b x y z = x (y z) | |
| c : {A B C : Set} -> (A -> B -> C) -> B -> A -> C | |
| c x y z = x z y | |
| k : {A B : Set} -> A -> B -> A | |
| k x y = x |
コンピュータを使わない音楽では普通、作曲する段階と演奏する段階とは分かれており(即興演奏の場合は違いますけど)、楽譜に書かれている部分と演奏家に任される(解釈)部分があります。 一方、コンピュータでの作曲では演奏家(timidityとか)に任される部分はかなり少なく、例えばdominoだったらトリルとかアルペジオとかも一々打ち込まなくてはなりません。 トリルやアルペジオは勝手にやってくれる作曲ソフトもあるんでしょうけど、それでもその部分を変更したくなったときなどは結局一々消したりする事になります。 他にも、強弱を数値で細かく指定しなきゃいけなくて不便な事があります(これも後から変えようとすると面倒)。 普通の楽譜ならこういうのは専用の記号があってすぐに書けるものですし、他にも、伴奏で通奏低音の記号を書くだけとかコードネームを書くだけとかもできるでしょう。
これは文書の話で言うような「構造と体裁の分離」がされているか否かという事だと思います。 つまり、楽譜が構造で演奏が体裁という事です。
| {-# LANGUAGE DeriveFunctor, FlexibleContexts, UndecidableInstances #-} | |
| import Control.Monad.Free | |
| import Control.Monad (void) | |
| import Control.Monad.Identity | |
| import Data.Void | |
| import Test.QuickCheck | |
| -- Free Monadの使用例 |
| {-# LANGUAGE GADTs, GeneralizedNewtypeDeriving #-} | |
| import Haste | |
| import Haste.Foreign | |
| import Control.Monad.Operational | |
| import Control.Monad.IO.Class | |
| import Control.Applicative | |
| data SleepableIOF a where | |
| Sleep :: Int -> SleepableIOF () |
| #!/usr/bin/python | |
| from tika import parser | |
| import argparse | |
| import os | |
| import sys | |
| def print_title(parsed, filename): | |
| try: | |
| print(parsed['metadata']['title']) |
| #!/usr/bin/env python3 | |
| # -*- coding: utf-8 -*- | |
| # printenvを使ってw3mでページ毎にコメントを記録できるようにする | |
| # 今まで作ったURLと注釈ファイル名(タイトル、ダブったら数字を付ける)の組の列をjsonで保持 連想配列 | |
| # URLを渡すと注釈ファイルが開く | |
| # keymap A EXEC_SHELL "w3m_commentary.py" | |
| import lxml.html | |
| import json |
| {-# LANGUAGE JavaScriptFFI #-} | |
| {-# LANGUAGE OverloadedStrings #-} | |
| {-# LANGUAGE TemplateHaskell #-} | |
| {-# LANGUAGE QuasiQuotes #-} | |
| {-# LANGUAGE GADTs #-} | |
| {-# LANGUAGE RecursiveDo #-} | |
| {-# LANGUAGE ScopedTypeVariables #-} | |
| module Lib | |
| ( myMain |