Вы знаете что я скупердяй, ни разу даже не платил за лицензию Windows. За все время жизни купил всего 2 программы — 1С.Деньги и дешифратор азбуки Морзе.
И все-таки любопытство взяло верх и решил потратиться на GPT4
Здравствуйте, Нomunculus, Вы писали:
Н>А какой первый вопрос ты ему задал? Видимо за ответ на него ты выложил $24?
Да, так и было — уже отбил 24. Все время откладывал, но хотел разобраться в сути Монад в Haskell. И у меня свой способ разбирательства — на мин. примерах. Вот такой код получился как бы с нуля:
{-# LANGUAGE FlexibleInstances #-}
-- Maybe2data Maybe2 a = Nothing2 | Just2 a
-- Определение класса Functor2
-- (a -> b): Это функция, преобразующая значения типа a в значения типа b.
-- f a: Это контейнер (или структура данных) типа f, содержащий элементы типа a. Например, это может быть Maybe a или [a] (список элементов типа a).
-- f b: Это такой же контейнер типа f, но содержащий элементы типа b.class Functor2 f where
fmap2 :: (a -> b) -> f a -> f b
-- Экземпляр Functor2 для Maybeinstance Functor2 Maybe2 where
fmap2 _ Nothing2 = Nothing2
fmap2 fun1 (Just2 val1) = Just2 (fun1 val1)
class Functor2 f => Applicative2 f where
pure2 :: a -> f a
(<**>) :: f (a -> b) -> f a -> f b
instance Applicative2 Maybe2 where
pure2 = Just2
Nothing2 <**> _ = Nothing2
_ <**> Nothing2 = Nothing2
Just2 f <**> Just2 x = Just2 (f x)
class Applicative2 m => Monad2 m where
return2 :: a -> m a
(<<>>==) :: m a -> (a -> m b) -> m b
instance Monad2 Maybe2 where
return2 :: a -> Maybe2 a
return2 = Just2
Nothing2 <<>>== _ = Nothing2
Just2 x <<>>== f = f x
safeSqrt :: Double -> Maybe2 Double
safeSqrt x
| x < 0 = Nothing2
| otherwise = Just2 (sqrt x)
-- Для печати на экранеinstance (Show a) => Show (Maybe2 a) where
show Nothing2 = "Nothing2"
show (Just2 x) = "Just2 " ++ show x ++ "."
main :: IO ()
main = do
let val = Just2 256
let result = val <<>>== safeSqrt <<>>== safeSqrt <<>>== safeSqrt
print result
Обычная версия выдавала не рабочий код — а эта выдает 100% рабочий код.
Потом каждый фрагмент кода объясняет детально до запятой...
Здравствуйте, Shmj, Вы писали:
S>Да, так и было — уже отбил 24. Все время откладывал, но хотел разобраться в сути Монад в Haskell. И у меня свой способ разбирательства — на мин. примерах. Вот такой код получился как бы с нуля:
Я понимаю что это очень простое задание для тех, кто в теме. И хотел дать даже на фрилансе задачу. Но подумал что дешевле ведь все-равно никто не сделает.
А мне нужен был не только код, но и ответы на вопросы.
Здравствуйте, Shmj, Вы писали:
S>Тоже не хочет работать эта скотина. Его нужно из под палки заставлять.
+1. Типа начнет писать код за тебя, не допишет, а вставит "давай дальше сам по такому же принципу".
А вот фиг тебе. Надо ему говорить чтобы полный код выдавал, тогда он доделывает.
А вообще лучше кусочками кормить (код выше например, для перевода на паскаль выдавать по функциям а не все сразу).
Проекты разрабатывать он пока не умеет, с большими файлами тоже тяжело справляется.
Здравствуйте, Shmj, Вы писали:
S>Вы знаете что я скупердяй, ни разу даже не платил за лицензию Windows. За все время жизни купил всего 2 программы — 1С.Деньги и дешифратор азбуки Морзе.
Дешифратор азбуки морзе удивляет конечно Но у всех свои причуды, не осуждаю
S>И все-таки любопытство взяло верх и решил потратиться на GPT4
Здравствуйте, bnk, Вы писали:
bnk>Дешифратор азбуки морзе удивляет конечно Но у всех свои причуды, не осуждаю
Так он не текст а именно звук распознает. Т.е. в эфире находишь сигнал, подаешь на вход девайса (пусть даже через микрофон) — и оно пишет что-там предается.
S>>И все-таки любопытство взяло верх и решил потратиться на GPT4 bnk>А почему $24? У меня $20
Здравствуйте, Shmj, Вы писали:
bnk>>Дешифратор азбуки морзе удивляет конечно Но у всех свои причуды, не осуждаю
S>Так он не текст а именно звук распознает. Т.е. в эфире находишь сигнал, подаешь на вход девайса (пусть даже через микрофон) — и оно пишет что-там предается.
А, ну тогда конечно (шучу) Убей не понимаю зачем такая софтина может понадобиться
S>>Так он не текст а именно звук распознает. Т.е. в эфире находишь сигнал, подаешь на вход девайса (пусть даже через микрофон) — и оно пишет что-там предается. bnk>А, ну тогда конечно (шучу) Убей не понимаю зачем такая софтина может понадобиться
а ты любительские диапазоны послушай, особенно СВ/КВ
Как много веселых ребят, и все делают велосипед...
Здравствуйте, bnk, Вы писали:
bnk>А, ну тогда конечно (шучу) Убей не понимаю зачем такая софтина может понадобиться
Так вот в том то и дело — только сам придумываешь себе потребность — и потом сам же платишь. По сути если жить как все — то вообще никаких программ не нужно покупать, даже комп. не особо нужен. Сейчас все в телефоне и телевизоре.
Вот мне интересно было радиолюбительство — я и купил.
Здравствуйте, Khimik, Вы писали:
K>Да, для начала неплохо. Пожалуйста попробуйте его ещё раз уговорить перевести функцию xdr3dfcoord:
В общем, нужно его долго уговаривать и давать по частям. Нужно вводить новую профессию — ругать и уговаривать GPT делать работу (интересно может ли один GPT уговаривать второго?).
Ваш C++ код имеет множество функций и структур, которые являются частью библиотеки XDR (External Data Representation). Перевод этого кода в Delphi потребует написания (или использования, если таковые существуют) аналогичных функций для Delphi.
Однако я могу начать перевод этой функции на Delphi для вас. Обратите внимание, что функции и типы, связанные с XDR, будут просто указаны как заглушки, и их реализация будет зависеть от вашего контекста или существующих библиотек:
function xdr3dfcoord(xdrs: PXDR; fp: PSingle; var size: Integer; precision: PSingle): Integer;
var
ip: PInteger = nil;
oldsize: Integer;
buf: PInteger;
// ... другие переменные ...begin
Result := 1; // Предполагаем, что функция завершится успешно
// ... инициализация переменных ...
// проверка, открыт ли xdrs для чтения или записи
// (Этот фрагмент зависит от реализации функций XDR)
// ...if (/* xdrs открыт для записи */) then
begin// код для записи
// ...end
else
begin// xdrs открыт для чтенияif not xdr_int(xdrs, lsize) then Exit(0);
// ... и так далее ...
// Большая часть кода C++ для чтения и декодирования данных
// ...end;
// Возвращаем результат
Result := 1;
end;
Пожалуйста, обратите внимание, что это лишь начальный этап перевода. Многие вещи, такие как управление памятью, обработка ошибок и использование функций XDR, требуют дополнительного внимания. Вам, возможно, потребуется доработать этот код, чтобы он работал правильно в вашем контексте.