問題タブ [combinatory-logic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - NLTK CCG でのラムダ計算表現
ラムダ計算機能を備えた確率的 ccg を実装しようとしています。
基本的には、次のコードを実行したい:
しかし、NLTK の既存の CCG 実装は、{sem=\x.he(x)} [1.0] 種類の語彙の意味部分をサポートしていません。
これを処理できる他の CCG 実装はありますか? または、これを NLTK 内で表現できますか?
haskell - ファンクションポイントをフリーにする Haskell ユーティリティ
Haskell で自由形式を指すように関数を迅速かつ正確に削減したいと考えています。かなり読みやすい結果を生成したいと思います。これについてどうすればよいですか?
boolean - SKIコンビネータを使用してXORを表現できますか?
SKIコンビネーターについて質問です。
XOR (exclusive or) はS
andK
コンビネータのみを使用して表現できますか?
私は持っている
どこ
haskell - SystemT コンパイラと Haskell での無限型の処理
このブログ投稿をフォローしています: http://semantic-domain.blogspot.com/2012/12/total-functional-programming-in-partial.html
これは、 System T (単純な完全関数型言語)用の小さな OCaml コンパイラ プログラムを示しています。
パイプライン全体が (Camlp4 メタプログラミングを介して) OCaml 構文を使用して、それらを OCaml AST に変換し、SystemT ラムダ計算 (参照: module Term
) に変換し、最後に SystemT Combinator 計算 (参照:
module Goedel
) に変換します。最後のステップも OCaml メタプログラミングAst.expr
タイプでラップされます。
Template Haskell を使用せずに Haskell に変換しようとしています。
SystemT Combinator フォームについては、次のように記述しました。
Compose
は順合成であり、 とは異なることに注意してください(.)
。
SystemT ラムダ計算から SystemT コンビネータ計算Elaborate.synth
への変換中に、関数は SystemT ラムダ計算変数を一連の合成射影式 (De Brujin Indices に関連) に変換しようとします。これは、コンビネータ計算に変数/変数名がないためです。Elaborate.lookup
これは、 関数を使用する で行われQuote.find
ます。
問題は、コンビネータ計算を GADT としてエンコードすることTHom a b
です。関数の翻訳Quote.find
:
Haskellに:
無限型エラーになります。
この問題は、GADTCompose
で andFst
とSnd
fromを使用するとTHom a b
、型シグネチャが無限に変化する可能性があるという事実から生じます。
Ast.expr
この記事では、 OCamlを使用して基になる式をラップしているように見えるため、この問題はありません。
Haskellで解決する方法がわかりません。次のような存在量化型を使用する必要がありますか
Fix
または、無限型の問題を適応させるためのある種の型レベル。find
ただし、これがor関数をどのように変更するかはわかりませんlookup
。