Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
1

Подключить F# к проекту на C#

04.03.2013, 20:43. Показов 2373. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. В общем, есть довольно большой код на шарпе (для меня), решил его укоротить, переписав на F#. У меня был класс дихотомия, который выглядел таким образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace SingleParameterOptimization
{
    public class Dichotomy : Solver
    {
        private double epsilon;
 
        protected override void SetData(double[] parameters)
        {
            epsilon = parameters[1];
        }
 
        protected override bool IncorrectData
        {
            get { return base.IncorrectData || epsilon >= L; }
        }
 
        protected override void PlaceNewPointsIfGreater()
        {
            PlaceStartPoints();
        }
 
        protected override void PlaceNewPointsIfLower()
        {
            PlaceStartPoints();
        }
 
        protected override void NewLambda()
        {
            Lambda = Middle - epsilon;
        }
 
        protected override void NewMu()
        {
            Mu = Middle + epsilon;
        }
    }
}
Я решил переписать и вот что получилось
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let rec dichotomy f a b e l = 
    let middle = (a+b)/2.
    let lambda = middle - e
    let mu = middle + e
    if b - a < l then
        middle
    else
    let FLambda = f lambda
    let Fmu = f mu
    if FLambda < Fmu then
        dichotomy f a mu e l
    else
        dichotomy f lambda b e l
let f x = x**2.0
let result = dichotomy f -1. 2. 0.00001 0.0001
printfn "%f" result
вопрос: как мне сделать так, чтобы можно было безболезненно заменить тот класс на эту функцию? У этой функции параметры f a b e l, у моего класса параметры такие:
C#
1
2
3
4
5
6
7
8
        public void SetData(Func<double, double> function, double a, double b, params double[] parameters)
        {
            Function = function;
            A = a;
            B = b;
            L = parameters[0];
            SetData(parameters);
        }
И немного не по теме: как в F# сделать вывод на экран, а то он тут же смаргивает окошко. Обычно я system("pause") или Console.ReadKey() использую, а тут не знаю...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2013, 20:43
Ответы с готовыми решениями:

Подключить БД к проекту
как БД с расширением *.GDB подключить к проекту в C#, чтобы можно было из этой БД брать данные

Подключить библиотеку к проекту
Собрал я библиотеку классов с кодом using System; namespace TestLib { public class...

Как подключить БД к проекту
Всем доброго времени суток! помогите пожалуйста решить такую проблему. сделал базу данных в MS...

Подключить JS код к проекту
Возможно ли это? Подключить JavaScript к проекту C# и писать на JavaScript. Не спрашивайте зачем,...

1
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
06.03.2013, 14:34 2
Цитата Сообщение от Psilon Посмотреть сообщение
Здравствуйте. В общем, есть довольно большой код на шарпе (для меня), решил его укоротить, переписав на F#.
Укорачивать так укорачивать.
Haskell
1
2
3
4
5
6
7
8
9
let dichotomy f a b e l = 
    let rec loop (a,b) =
        let middle = (a + b) / 2.
        if b - a < l then
            middle
        else
            let lambda, mu = middle - e, middle + e
            loop <| if f lambda < f mu then (a, mu) else (lambda, b)
    loop (a,b)
Цитата Сообщение от Psilon Посмотреть сообщение
И немного не по теме: как в F# сделать вывод на экран, а то он тут же смаргивает окошко. Обычно я system("pause") или Console.ReadKey() использую, а тут не знаю...
Код
Console.ReadKey() |> ignore
1
06.03.2013, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2013, 14:34
Помогаю со студенческими работами здесь

Как подключить БД к проекту?
Чтобы проблема была понятней, на этом видео((именно в этот...

Подключить библиотеки к проекту
Не могу запустить проект , который работает с DirectX . Не видит библиотек и заголовков . Как...

Подключить все библиотеки к проекту
Здравствуйте! у меня в проекте используется EMGUCV. Как образом мне все библиотеки включить в EXE,...

Как подключить файл.сs к проекту?
как подключить файл.сs к проекту? в файле описан класс. а проект должен демонстрировать работу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru