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

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

04.03.2013, 20:43. Показов 2715. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2013, 20:43
Ответы с готовыми решениями:

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

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

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

1
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
06.03.2013, 14:34
Цитата Сообщение от 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() использую, а тут не знаю...
Code
1
Console.ReadKey() |> ignore
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2013, 14:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru