0 / 0 / 0
Регистрация: 10.06.2016
Сообщений: 10
1

Лямбда функция

12.12.2017, 12:13. Показов 1556. Ответов 5
Метки c (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую. Может кто пояснить, что это означает
Pascal
1
(OnProcessCommand: string -> string)
и какие параметры надо передавать этой процедуре? Целиком она выглядит так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure RunServer(OnProcessCommand: string -> string);
begin
  var server := new TcpListener(IPAddress.Any, port);
  server.Start();
 
  while (true) do
  begin
    var client := server.AcceptTcpClient();
    var stream := client.GetStream();
 
    var br := new BinaryReader(stream);
    var data := br.ReadString();
    
    data := OnProcessCommand(data);
    
    var bw := new BinaryWriter(stream);
    bw.Write(data);
    bw.Flush();
    
    stream.Close();
    client.Close();
  end;
end;
Взята из примера ClientServer.pas
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2017, 12:13
Ответы с готовыми решениями:

Лямбда-выражения. Как описать лямбда-процедуру и передать в нее файловую переменную?
Погуглив не смогла найти ответов на свои вопросы. Есть следующая процедура, которая находит...

Непонятые лямбда-выражения
Всем привет, начал разбираться в лямбдах, вроде простые лямбды хорошо понятны: var hypot: (real,...

Чем отличаются лямбда от предиката?
Чем отличается лямбда функции от предиката?

Инициализация поля лямбда-выражением
В C# откомпилировалось это: using System; class MainClass { Action f = () =>...

5
5084 / 2655 / 2350
Регистрация: 10.12.2014
Сообщений: 10,041
12.12.2017, 12:23 2
А прочитать коммент строкой выше не судьба?
Pascal
33
34
/// Запускает сервер, принимающий от клиента строку, выполняющий указанное действие и отправляющий строку в ответ
procedure RunServer(OnProcessCommand: string -> string);
0
0 / 0 / 0
Регистрация: 10.06.2016
Сообщений: 10
12.12.2017, 12:27  [ТС] 3
Цитата Сообщение от JuriiMW Посмотреть сообщение
А прочитать коммент строкой выше не судьба?
Можете привести пример программы, с передачей параметра в эту функцию?
0
5084 / 2655 / 2350
Регистрация: 10.12.2014
Сообщений: 10,041
12.12.2017, 12:34 4
Конкретно эту процедуру не могу привести…

Но как это работает видно из примера: C:\PABCWork.NET\Samples\Graphics\GraphWPF\anim3.pas
Там arrGen заполняется.
1
0 / 0 / 0
Регистрация: 10.06.2016
Сообщений: 10
12.12.2017, 13:23  [ТС] 5
У меня почему-то нету anim3.pas, хотя anim2.pas и anim4.pas есть(3.3 сборка 1549 от 17.10.2017). Что можете посоветовать почитать, чтобы понять, что означают данные строки?
Pascal
1
2
OnProcessCommand: string -> string
OnProcessCommand: string -> ()
0
Status 418
Эксперт Python
4581 / 2348 / 602
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
12.12.2017, 14:01 6
Лучший ответ Сообщение было отмечено oleg107 как решение

Решение

Ну наверное стоит почитать что такое вообще процедурные переменные. Параметр-функция.
В качестве параметра может выступать не только переменная, но и функция.
1
12.12.2017, 14:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2017, 14:01
Помогаю со студенческими работами здесь

Как написать лямбда функцию с использованием if?
Требуется написать лямбду, аналогичную этой: f = lambda x: x if x >= 0 else -x Добавлено через...

Лямбда-функция
Можно ли в этот код добавить хоть одну лямбда-функцию? ...

Лямбда функция
Добрый день. Возможно ли как-то сделать здесь лямбда функцию? Выдаёт ошибку "incompatible thrown...

Лямбда-функция
Обясните, пожалуйста, идиоту, если можно - на пальцах - как правильно написать лямбда-функцию,...


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

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

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