オーバーロードはC#コードで非常に便利です。私はそれが他の多くの言語でもできることを知っています(確かにC++です)。関数はLispでC#のようにオーバーロードされますか?
LISPは過負荷または同等のものを許可しますか?
オーバーロードはC#コードで非常に便利です。私はそれが他の多くの言語でもできることを知っています(確かにC++です)。関数はLispでC#のようにオーバーロードされますか?
LISPは過負荷または同等のものを許可しますか?
はい、「類似のもの」がありますが、より強力です:generic functions。
EDIT:オーバーロードの定義がコンパイル時の解決を意味することは知らなかった。ありがとうRainer Joswig。
Common Lispはありません。
Common Lispは 'オーバーロード'をサポートしていません。
Common Lispは、CLOSを介して多型を提供しますが、オーバーロードはしません。
私の答えを編集しました。ありがとうございました! –
@Vsevolod Dyomkinありがとうございました。私は 'defmethod'について考えている間に脳のバッファオーバーフローが発生しました:) –
しかし、オーバーロードはコンパイル時に解決されますが、ジェネリック関数はランタイムディスパッチを行います。意味的には、オーバーロードを置き換えるためにジェネリック関数を使用することはできますが、逆には使用できません。 – Svante
@Svante私はここで少し混乱していると信じています。 C#はランタイム・ディスパッチも行いますが、呼び出されるオブジェクトの型にのみ基づいて、引数のランタイム・タイプは無視します。 –