読者です 読者をやめる 読者になる 読者になる

lo .qir. co'e

qiru's somethings

個人的ローマ字表記

仕様を文字に起こすのは面倒だしほぼ自明なので例示のみ.
(とは言ふものの未定事項多々)

原表記 ヘボン式 99式 qiru式 (假稱)
鼻血 hanaji hanadi hanadi
墾田永世私財法 konden'enenshizaiho konden'einensizaihou coqdeqeineqsizaihou
ジメチルエーテル jimechirueteru zimetirueeteru zimetirue-teru
惑星直列 wakusechokuretsu wakuseityokuretu wacuseitjocuretu
スタッカート sutakkato sutakkaato suta'ca-to
翻訳こんにゃく hon'yakukonnyaku hon'yakukonnyaku hoqjacucoqnjacu

(ヘボン式, 99式 に誤りが有る氣が多分にする)

自作言語

今考へてる言語の特徴の備忘録.
公開できる程度に具體化できるのはいつになるやら…….

音素, 字素

  • 子音
    • 無聲音
      • c, t, x, f
    • 有聲阻害音
      • g, d, j, v
    • 鼻音
      • n
  • 母音
    • 非円脣音
      • i, e, a
    • 円脣音
      • ø, o, u

備考

  • “x” は 英語の “sh”.
  • 全部Asciiで表記可能にしたいけど, “ø” を何で代へるか惱み中.
    • eulwjbaqみたく “w” が可いかなと思ったが, 後述の理由で使用不可.
  • 話者の精神が特殊な状態にあるときには(“g”, “d”, “j”, “v”)が(“q”, “r”, “y”, “w”)になる.
  • 數が少なすぎて單語空間不足の豫感がひしひしとしてる. Vikuに勇氣を貰ふ.

形態論

殆ど何も決まってない.

  • 任意の單語は (CC?VV?)+C?
    • (私は CC?VV? のことを"擬音節“ (”pseudo syllable“, ”psyllable“) と呼ぶ.)
  • lojbanみたく, 品詞が形態で判別できるやうにはする豫定.

文法

殆ど何も決まってない.

  • noun := article preposition verb
  • role := preposition | noun
  • allocation := role noun
  • sentence := verb allocation*

意味論(?)

この項は本當の本當に雜記です. 自分でも能く解ってない.

  • 様々な事象を特性の喪失, 獲得, 變化と捉へたい.
    • go: oの座標がr0からr1に變化
    • give: oの所有者がp0からp1に變化
    • become: oが性質aを獲得
  • moveとcopyの違ひが重要そう.

その他細々としたこと

  • 數は指數表記を基本にしたい.

lefene

概要

lefene はElefenの1方言です.
qiruが好き勝手に決めました.

Elefenとの差異

字名

名前が変更される文字が有ります.

letter Elefen name Lefene name
f ef fe
h hax he
l el le
m em me
n en ne

転写

文字 “k”, “q”, “w”, “y” は使用されません.

Elefen Lefene
k c
q c
w u, v
y i, j

音素

“q” は 英単語 “sing” 中の “ng” です ([ŋ]).
“q” の名前は “qe” です.
“c” や “g"の前か, 語末に有る "n”, “ng” は, “q” に変更されます.

大文字

文頭や固有名詞でも大文字は使いません.

冠詞

不定冠詞としての “un” は使用されません.
定冠詞 “la” を伴わない任意の名詞は不定です.

複数形接尾辞 “-(e)s” は使用されません.
量化されない任意の名詞は単複どちらにもなりえます.
単複を明示するには “un” や “alga” を使用します.

相ぢゃない

xekri.hatenablog.jp

コメントを受けて, ↑の訂正.

訂正

記事内での主旨は"dundaに相付けても一體何に注目しての相なのか解らんよね"でした. なので各役割に注目した相を語りました.

いやいや.
"dundaに關はる役割一連に關する相"ですやん?

と云ふ訣で, 先の疑問は不適だったと言はざるを得ませんね. .o'anaisai.
當該記事内で, dunda_2の相として述べたものが正にdundaの相ですね.

得た知見, あるいは適切な言ひ直し

ある事態superとその役割としての事態subに注目するとき, subにはsuperとその相が一致するものとしないものとが有る.

それ以上役割群に分割できない原子役割なんてものも考へたが, 巧く纏まらなかった.

相ですね

相[aspect]についてです.

言語に興味を持った契機がjboで未だにjboの構造への感動が失はれてないので, 人間言語*1を自作するときも述語から項を引き出す感じになることが多かったのですが, これだと相が私に扱ひかねると最近感じてゐます.

例示

{dunda} "x1 gives x2 to x3"*2で考へます.
これに相を明示して命題を作ると, 例へば{ko'a ko'e ko'i ba'o dunda} "甲が乙に丙を與へおへた"になります.
一體何が終はったのでせう.

{ko'a ba'o dunda}の場合

{ko'i te dunda}

どうなってるか全く判りません. {pu'o}かも知れないし, {ca'o}かも知れない.

{ko'e se dunda}

直感的に

  • {ko'a xo'u dunda} XNOR {ko'e xo'u se dunda}
  • {ko'i mo'u te dunda} XNOR {ko'e mo'u se dunda}

と思ひます. なれば少なくとも{co'a}以降であると言へそうです.

{ko'i ba'o te dunda}の場合

{ko'a dunda}

我々の"与えられる前に受けることはできない"なる常識によって{ba'o}と思はれます. そこに統語論的判斷は有りません.

{ko'e se dunda}

上述の理由から, こちらも{ba'o}でせう.

自作言語への案

斯樣に, jboの"1述語から多數の項を引き出す"ことを可能にする"複數の事象を1つの事象に纏める"行ひは, 相に關して話をややこしくします.
{dunda}の中には既にx1からx3へ向かふ時間の流れが生まれてゐます. x2の相はx1, x3のそれに依存してゐます.
個人的には, "give1, give2, give3なる個別の單項述語についてそれらの關係giveが與へられる"みたいな構造が好いかなと思ひます.

以上です.*3

*1:"人工言語"だと機械言語のことと誤解されることが最近多いのでかう呼んでます.

*2:簡略化して書いてます. 公式辭書とは違ひます.

*3:qiruはjboに詳しくないので, 全體としてとんちきなことを言ってるかも知れません. 鵜呑みにしないでください.

pipe ope .iu

F#にはpipe forward演算子とpipe backward演算子とが有ります (知らなければググってください). これが他の言語にも有られたい.
Nemerleには前者だけ有ります.
Pythonには兩方有りません. 手ずから定義しようと思っても新たしい演算子定義はできません.

痛し痒し.

Python書いてると, 基本的に処理順と記載順とが逆になる*1所爲で思考が妨げられるんですよね(Rubyでさう云ふことは無い).
なので, 處理を左から右に流れるやうに書けることを許すpipe opeが欲しくて欲しくて死にそう. 死にました.

僕は只, 手續き型と函數型のハイブリドで, OOPできて, indent-based syntaxで, pipe forward/backward opeの有る言語で氣持ち好くなりたいだけなのに……
自分で作るしか無いんですかね*2.

ユーザ中置演算子が定義できる言語, 誰か敎へてください*3.

*1:fをxに適用することをf(x)と書くことにしたのは人類の失敗

*2:處理系自作に最近興味が有る

*3:幾らでも有りそう. 自分で探せ.

Nemerleが好さそう

今日知った機械言語Nemerleが好い感じ (Wikipedia).
C#のお仲間だけど, 細かなシンタクスとか, 漂ふ函數型の匂ひが私に好ましい.
メタプログラミンの機能が超豐富らしい(てかそれが一番の特徴)けど, 私は"メタプロ mo"状態なので今は觸りません.

取り敢へず書いた

はろわ

基本

System.Console.WriteLine("Helllo world!");

それっぽく

using System.Console;

module HelloWorld{
    Main() :void{
        WriteLine("Hello world!");
    }
}

インデント中心のシンタクスも

#pragma indent

using System.Console

module HelloWorld
    Main() :void
        WriteLine("Hello world!")

これが滅っ茶嬉しい

部分適用とかパイプライン演算とか

#pragma indent

def sum(a, b)
    a + b // "return"は不要

def succ = sum(_, 1) // 値を渡さない引き數はアンダスコアに

0 |> succ |> System.Console.WriteLine // 1

いつもの

フィボナチ數列 (with パターンマッチ)

def fib(_ :int) :int
    | 0 => 0
    | 1 => 1
    | n => fib(n - 2) + fib(n - 1)

10 |> fib |> System.Console.WriteLine // 55

fizz buzz

def fizzBuzz(n :int) :void
    for (mutable i = 0; i < n; i++)
        match ((i%3, i%5))
            | (0, 0) => "FizzBuzz" |> WriteLine
            | (0, _) => "Fizz" |> WriteLine
            | (_, 0) => "Buzz" |> WriteLine
            | _ => i |> WriteLine

20 |> fizzBuzz

(これに關しては未だ巧い書き方が有りそう)

感想

()と{;}が嫌ひな私としては, かなり好みです(シンタクスしか見てない).
後はドキュメントが多ければね(C#やれ).