問題タブ [cdr]
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.
lisp - LISPcdr関数
私が行った場合
(cdr x)
は(NOT (NOT (NOT A))))
しかし(cdr (cdr x))
、NIL
何が起きてる?
f# - cons :: F#のシーケンスの演算子?
シーケンスをリストに変換する必要のない、より良いコードはありますか?
lisp - carおよびcdr操作を使用して要素を取得すると例外が発生するのに(append)は発生しないのはなぜですか?
このコードセグメントを取得したとします。
さて、インタプリタ(SBCL)を渡すと:
結果は次のとおりです。
クラッシュしません。ただし、私が渡す場合:
クラッシュします。関数に(connected-with-bridges)
応じて、リストのcdrは、*islands*
続行できなくなるまで渡され続けます。に初めて*islands*
渡される(connected-with-bridges)
と、リストはになります'((1 9 8 5) (6 4 2 3)
。ただし、再帰が進むにつれて、2回目はになります'(6 4 2 3)
。これは(append)
関数内で次のようになります。
(append)
インタープリターで単独で実行すると明らかにクラッシュしますが、内部(ブリッジで接続)の内部で実行するとクラッシュしません。
asterisk - カスタムcdrフィールドにデータを保存する
カスタムフィールド「rec_name」IDテーブル「cdr」、データベース「asteriskcdrdb」を作成しました。このフィールドには、録音名を保存します。.confファイルの1つにこの行を追加することでそれを行う必要があることはわかっていますが、どこにありますか?
exten => s,1,set(CDR(rec_name)=${CALLFILENAME})
SQLステートメントでもできますが、呼び出しの詳細をデータベースに保存するファイルがどこにあるのかわかりません。
lisp - なぜ caddr[(ABC)] = C なのですか?
理想的には LISP で:
しかし、本は答えがC
. 誰でも説明できますか?
どうもありがとう。
python - Pythonの適切なリストと再帰的なテール
さまざまなLispでは、適切なリストはnil
(null値)またはconsセルのいずれかであり、最初の(head、first、car)値は値を指し、2番目の(tail、rest、cdr)は別の適切なリストを指します。ErlangやScalaなど、他のさまざまな関数型プログラミング言語がこのヘッドアンドテール機能を実装しています。CommonLispとEmacsLispでは、リストの末尾を無限に再帰的に見つけることができます。
を生成しnil
ます。Pythonでその動作をエミュレートしたいと思います。確かに、パフォーマンスのためには、高度に最適化されたネイティブデータ型を使用する方がよいので、これは演習専用です。私のコードは次のとおりです。
ただし、呼び出しtail
は再帰に入り、最大再帰深度エラーが発生します。以下のような表現を可能にするにはどうすればよいですか?言い換えれば、Pythonで適切なリストの機能を作成するにはどうすればよいですか?
関連する質問ですが、私の質問には答えません:PythonのLISPの短所
scheme - スキームの可変個引数関数
次の形式をとる可変個引数関数をSchemeで定義する必要があります
(define (n-loop procedure [a list of pairs (x,y)])
。ペアのリストは任意の長さにすることができます。
各ペアは、下限と上限を指定します。つまり、次の関数呼び出し(n-loop (lambda (x y) (inspect (list x y))) (0 2) (0 3))
が生成されます。
明らかに、carとcdrは私のソリューションに関与する必要があります。しかし、これを困難にする規定は次のとおりです。割り当てステートメントまたは反復ループ(whileおよびfor)はまったく使用されません。
whileとforを使用してペアのリストをインデックスに登録することはできますが、再帰を使用する必要があるようです。説明に必要だと思わない限り、コードソリューションは必要ありませんが、これがどのように攻撃される可能性があるかについて誰かが提案していますか?
scheme - 高次手続き - ペア構築 (cons、car、cdr)
次の手順を作成する必要があります: my-cons、my-car、my-cdr をスキームで作成します。
次のように動作するはずです。
(定義 p1 (my-cons 3 8))
(p1 #t)
3
(p1 #f)
8
(マイカー p1)
3
(my-cdr p1)
8
今、私はこれだけを持っています:
(my-cons を定義する
(ラムダ (xy)
(cons xy)
(let ((a (car (cons xy)))))
しかし、このコードでは、定義された p1 に my-cons または my-cdr を適用できません。
c - Asterisk 1.4.21 からのアップグレード後に chan->cdr データなし
MySQL を使用してユーザーの認証、ルーティング、請求を行う C 言語の従来のアスタリスク アプリケーションがあります。Asterisk の新しいバージョンでは CDR データが返されないため、Asterisk 1.4.21 でそれを保持しています。
どうやら 1.4.22 https://issues.asterisk.org/jira/browse/ASTERISK-13064にいくつかの変更があり、CDR の処理方法が完全に変更されました。残念ながら、既存のコードを適切に移行する方法について役立つ情報はありませんでした。
実行順序が変更され、'h' 拡張子が呼び出され、CDR データがリセットされます。
私のコード:
コードの他の部分は chan->cdr->billsec などを処理しますが、常に 0 の値を返します。
呼び出しが成功した後、私は常に CLI からこのログを取得します。
じコードが 1.4.21 でも問題なく動作しますが、私が聞いた解決策の 1 つは、Dial の前に ast_reset() を使用することですが、それを実装する方法がわかりません。このアプリケーションを適応させる方法について何か助けはありますか?
list - なぜelispのリストに変更が加えられているのですか?
elispについて質問があります。例えば:
(nthcdr 2 trees)
私は新しいリストを返すと思いました-(pine birch)
そしてそのリストをsetcdr
式に入れます。これはの値を変更するべきではありませんtrees
。誰かが私にそれを説明できますか?