Как F # компилирует функции, которые могут принимать несколько разных типов параметров в IL?

Я практически ничего не знаю о F #. Я даже не знаю синтаксиса, поэтому не могу привести примеры.

В потоке комментариев упоминалось, что F # может объявлять функции, которые могут принимать параметры нескольких возможных типов, например строку или целое число. Это было бы похоже на перегрузку методов в C #:

public void Method(string str) { /* ... */ }
public void Method(int integer) { /* ... */ }

Однако в CIL вы не можете объявить делегат этой формы. У каждого делегата должен быть один, конкретный список типов параметров. Однако, поскольку функции в F # являются первоклассными гражданами, может показаться, что вы должны иметь возможность передавать такую ​​функцию, и единственный способ скомпилировать ее в CIL - использовать делегаты.

Итак, как F # компилирует это в CIL?

5
задан Timwi 21 September 2010 в 03:36
поделиться