Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Заблокирован

Число "файлов-hs" в программе HaskellPlatform-8.0.1

05.09.2016, 14:14. Показов 2448. Ответов 31

Студворк — интернет-сервис помощи студентам
Привет всем программистам Haskell!

Помогите, пожалуйста, с анализом программ. Не могу удержаться как Буратино, всюду сую свой длинный нос.

Как подсчитать число файлов-hs на HaskellPlatform-8.0.1? Неужели надо открывать Проводник, считая визуально вручную число элементов по каждой папке?

Пожалуй, устанешь пыль глотать!

Как написать код на Haskell, способный выдать точное число файлов с расширениями: *.hs, *.ехе, *.docs, *.html?
Хочется узнавать сразу как по программе (платформе) в целом, так и по каждому каталогу (папке).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2016, 14:14
Ответы с готовыми решениями:

История открытых/созданных файлов в программе файлов (история), записывать в файл либо бд, или ещё как-то
Ребят, помогите нужно сделать историю открытых/созданных файлов в menustrip1 Как это сделать? Занести имена файлов и путь, можно ещё по...

Какое число необходимо подать на вход программе, чтобы было выведено число 5311?
какое число необходимо подать на вход программе, чтобы было выведено число 5311? var n: integer; begin readln(n); writeln(n div...

На вход программе подается беззнаковое 32-битное целое число N и натуральное число K (1 ≤ K ≤ 31). Требуется взять K под
На вход программе подается беззнаковое 32-битное целое число N и натуральное число K (1 ≤ K ≤ 31). Требуется взять K подряд идущих битов...

31
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
05.09.2016, 15:04
Лучший ответ Сообщение было отмечено balky02 как решение

Решение

Вот набросок кода, который распечатывает на консоли файлы из текущей директории с заданным расширением:

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import System.IO
import System.Directory
 
chkFile :: String -> String -> Bool   -- имеет ли файл заданное расширение
chkFile fnam ext | (lf < lext) = False
                 | (drop (lf-lext) fnam) == ext = True
                 | otherwise = False
                 where lf = length fnam
                       lext = length ext
main = do
  homeDir  <- getCurrentDirectory  -- текущая директория
  lstFiles <- getDirectoryContents homeDir -- список всех файлов
  mapM putStrLn $ filter (\ f -> chkFile f ".hs") lstFiles -- печать файлов ".hs"
  return ()
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
05.09.2016, 16:16
Catstail, готовые комбинаторы - удобная вещь. Хотя я сам любитель писать свои велосипеды, но писать их используя готовые абстракции еще приятнее
Haskell
1
2
3
4
import System.Directory
import Data.List
 
main = getCurrentDirectory >>= getDirectoryContents >>= mapM putStrLn . filter (isSuffixOf ".hs")
3
Заблокирован
05.09.2016, 16:23  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Вот набросок кода
Catstail!
Спасибо! Что-то не то...

Лёгкое он подсчитал. (C:\Users\admin\Documents\MyHaskell)

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GHCi, version 8.0.1: [url]http://www.haskell.org/ghc/[/url]  :? for help
Prelude> :cd C:\Users\admin\Documents\MyHaskell
Prelude> :load "MyFilesHs.hs"
[1 of 1] Compiling Main             ( MyFilesHs.hs, interpreted )
Ok, modules loaded: Main.
*Main> :main
MyPlagiarism.hs
MyPath.hs
MyHask6.hs
MyHask5.hs
MyHask4.hs
MyHask3.hs
MyHask2.hs
MyHask1.hs
MyHask.hs
MyFilesHs.hs
MyCalculator2.hs
MyCalculator.hs
*Main>
Потом мы пошли на HaskellPlatform-8.0.1. Он растерялся, не понимает что считать-то? Побродили и разошлись. Картинка ниже.
Миниатюры
Число "файлов-hs" в программе HaskellPlatform-8.0.1  
0
Заблокирован
05.09.2016, 16:39  [ТС]
Цитата Сообщение от _Ivana Посмотреть сообщение
удобная вещь
_Ivana!
Код короче. Выполняет то же, что и выше у Catstail. Спасибо. Опять не то...

Мне надо не список, а только общее число. Хочу узнать: сколько всего файлов-hs в программе HaskellPlatform-8.0.1?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
05.09.2016, 16:41
Цитата Сообщение от balky02 Посмотреть сообщение
Опять не то...
А по-моему наоборот, самое то Я же не вам на ваши запросы отвечаю.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
05.09.2016, 17:40
Цитата Сообщение от balky02 Посмотреть сообщение
Что-то не то...
- конечно, не то. Это набросок, я же писал.

Добавлено через 21 минуту
Вот следующий шаг (программа берет из командной строки имя директории и расширение файлов с точкой, а возвращает количество найденных файлов в директории):

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import System.IO
import System.Directory
import System.Environment
 
chkFile :: String -> String -> Bool
chkFile fnam ext | (lf < lext) = False
                 | (drop (lf-lext) fnam) == ext = True
                 | otherwise = False
                 where lf = length fnam
                       lext = length ext
main = do
  [homeDir,ext]  <- getArgs
  lstFiles <- getDirectoryContents homeDir
  putStrLn $ (show $ length $ filter (\ f -> chkFile f ext) lstFiles) ++ " files of type " ++ ext ++ " found"
  return ()  
 
D:\!FP\Haskell\MySrc\lab-7>cf-jg c:\!send .xls
8 files of type .xls found
 
D:\!FP\Haskell\MySrc\lab-7>cf-jg c:\!send .doc
12 files of type .doc found
 
D:\!FP\Haskell\MySrc\lab-7>cf-jg c:\!send .zip
90 files of type .doc found
Добавлено через 2 минуты
_Ivana, а я все пытался вспомнить, как же он (isSuffixOf) называется...
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
05.09.2016, 17:49
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Catstail, я в хугле в таких случаях за подсказкой лезу
Вот кривоватый кот, навскидку, без волшебных абстракций и комбинаторов
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
import System.Directory
import Data.List
 
fc dir = do
    isD <- doesDirectoryExist dir
    if isD then do
        p <- getPermissions dir
        if readable p then listDirectory dir >>= mapM fc >>= return . concat else return []
    else
        return $ filter (isSuffixOf ".conf") [dir]
 
main = getCurrentDirectory >>= fc >>= print
http://rextester.com/RJH91990
1
Заблокирован
05.09.2016, 20:11  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Вот следующий шаг
Catstail!
Не получается у меня ничего по предложенным кодам.

Хотел узнать сколько файлов-hs живёт у меня в Компьютере. Ерунда, всего 16!
Значит, практического применения пока совсем не имеют. Только для баловства.

Самый первый поселился 01.06.16, именуется как "Master.hs". Остальные 15 создал за последнюю неделю.
Сходил к нему в гости, живёт здесь: C:\Users\admin\GlassFish_Server\mq\lib\h elp

Воспользовался "дедовским способом", ничего лучшего пока не увидел. Картинка ниже.

Жалко прогнал с ПК "Анаконду", та бы справилась. Очень пронырливая.
Миниатюры
Число "файлов-hs" в программе HaskellPlatform-8.0.1  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
05.09.2016, 20:33
balky02, ты меня удивляешь. Да ведь обход директорий нужно делать рекурсивно (с заходом в поддиректории). А приведенные коды показывают только один уровень.
0
Заблокирован
05.09.2016, 20:57  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
balky02, ты меня удивляешь. Да ведь обход директорий нужно делать рекурсивно (с заходом в поддиректории).
Catstail!
А чего удивительного? У меня встречная мысль: где можно скачать такую программу? Это какие-нибудь научные разработки ведущих фирм. Кустарю не под силу.

Студенты!
Поясняю объем работы. Отдельные папки могут до 10 уровней. Значит, надо положить рядом тетрадь и карандаш для фиксации каждой ветки дерева.
Могут быть ошибки из-за ветвления и человеческого фактора.

Когда всё это обойду, если никому заранее не известно конечное число искомых файлов?

По сути: лабиринт.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
05.09.2016, 22:26
Вот нашел решение в Сети и чуть его подрихтовал - рекурсивная печать всего дерева директорий:

Haskell
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
import System.IO
import System.Directory
import System.Environment
 
chkFile :: String -> String -> Bool
chkFile fnam ext | (lf < lext) = False
                 | (drop (lf-lext) fnam) == ext = True
                 | otherwise = False
                 where lf = length fnam
                       lext = length ext
               
scan :: String -> String -> IO [String]               
scan fnam ext = do
 isDir <- doesDirectoryExist fnam
 if isDir then do
    files <- getDirectoryContents fnam
    let aFiles = filter (not . (`elem` [".", ".."])) files
    res <- mapM (\ fil -> scan (fnam ++ "" ++ fil) ext) aFiles
    return $ concat res    
 else
    return $ if chkFile fnam ext then [fnam] else []
                       
main = do
  [homeDir,ext]  <- getArgs
  flst <- scan homeDir ext
  mapM putStrLn flst
Запускать так: имя_программы имя_директории расширение Вот примеры запуска:

Haskell
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
D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .zip
c:\!send\Реестр.zip
c:\!send\t109a.zip
c:\!send\PABCWork.zip
c:\!send\iterate.zip
c:\!send\game-00.zip
 
D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .jpg
c:\!send\vba-109a.jpg
c:\!send\vb-42.jpg
c:\!send\vb-109a.jpg
c:\!send\pro-20.jpg
 
D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .JPG
c:\!send\Новая папка\DSC_0058.JPG
c:\!send\Новая папка\DSC_0057.JPG
c:\!send\Новая папка\DSC_0056.JPG
c:\!send\Новая папка\DSC_0055.JPG
c:\!send\Новая папка\DSC_0054.JPG
c:\!send\Новая папка\DSC_0053.JPG
c:\!send\Новая папка\DSC_0052.JPG
c:\!send\Новая папка\DSC_0051.JPG
c:\!send\Новая папка\DSC_0050.JPG
c:\!send\Новая папка\DSC_0049.JPG
 
D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>
1
Заблокирован
05.09.2016, 22:41  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
коды показывают только один уровень
Catstail!
Развлекаюсь, играю в прятки с Windows 7!

Пусть будет вложенных 9 папок, наименование по номерам: 1; 2; … 9.
Файл "Matryoshka.hs" спрячем в папке 9 (последняя), а папку 1 — аж в дистрибутив Java.
C:\Program Files\Java\jdk1.8.0_102\bin\CoreJavaBook \1\2\3\4\5\6\7\8\9\Matryoshka.hs

Теперь просим Windows найти все файлы с расширением: *.hs

Windows проиграл! Никак не может найти Matryoshka.hs

Понимаю надо сделать "Перезагрузку", тогда будет по-честному (он запишет в реестр).
Сделал "Перезагрузку", не помогло! Windows бессилен!
0
05.09.2016, 22:48

Не по теме:

balky02, Купили нашим лесорубам японскую пилораму. Пилит любые бревна. Наши думают: а что, если проволоку стальную подсунуть? Подсунули. Пила - ззззз - перепилила. А трубу если? Подсунули трубу. Пила - зззззззззз - перепилила. Ах, ты! А если рельс? Подсунули рельс. Пила - зззззззззззззз - и сгорела... А, мля! - сказали довольные лесорубы...

0
Заблокирован
05.09.2016, 23:49  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
А, мля! - сказали довольные лесорубы...
Catstail!
Помогите, пожалуйста, перевести код с Python на Haskell.

Правильный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os,fnmatch
 
#поиск по шаблону
def getfilelist(dp,pattern):
    l = []
    for root,dirs,files in os.walk(dp):
        for file in files:
            if fnmatch.fnmatch(file,pattern):
                fullpath = os.path.join(root,file)
                print(fullpath) # вывод пути до файла -закомментируйте если не нужно
                l.append(fullpath)
    count_files = len(l)
    print('Найдено',count_files,'файлов')
 
getfilelist(r'C:\Program Files\Haskell Platfopm','*.hs')
Ответ:
Python
1
2
3
4
*** Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 32 bit (Intel)] on win32. ***
>>> 
Найдено 0 файлов
>>>
Миниатюры
Число "файлов-hs" в программе HaskellPlatform-8.0.1  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
06.09.2016, 06:56
Этот код в чистом виде на Haskell не переводится, в силу ряда причин:

1) чистота Haskell требует использования монад.
2) Питон - язык сверхвысокого уровня. В частности, это означает, что можно записать
Python
1
 for root,dirs,files in os.walk(dp):
и это обеспечит рекурсивное сканирование директорий с поддиректориями. В Нaskell это нужно программировать явно.

В коде, который привел _Ivana или в моем это реализовано. Я даже примеры запуска привел. Чего не хватает?


Вообще хочу дать добрый совет: изучать новый язык нужно неторопливо и систематично. Если ты знаком с C#, то Питон можно пробежать быстро (языки близки идеологически). Haskell с C# не близок никоим образом.
0
Заблокирован
06.09.2016, 10:13  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Я даже примеры запуска привел. Чего не хватает?
Catstail!
Напишу прямо: не хватает ясности и однозначности, всё как-то расплывчато.

Мне надо найти на своём ПК: Число "файлов-hs" в программе HaskellPlatform-8.0.1

Ввожу Ваш "отрихтованный код" — MyFilesHs5.hs:
Haskell
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
import System.IO
import System.Directory
import System.Environment
 
chkFile :: String -> String -> Bool
chkFile fnam ext | (lf < lext) = False
                 | (drop (lf-lext) fnam) == ext = True
                 | otherwise = False
                 where lf = length fnam
                       lext = length ext
               
scan :: String -> String -> IO [String]               
scan fnam ext = do
 isDir <- doesDirectoryExist fnam
 if isDir then do
    files <- getDirectoryContents fnam
    let aFiles = filter (not . (`elem` [".", ".."])) files
    res <- mapM (\ fil -> scan (fnam ++ "" ++ fil) ext) aFiles
    return $ concat res    
 else
    return $ if chkFile fnam ext then [fnam] else []
                       
main = do
  [homeDir,ext]  <- getArgs
  flst <- scan homeDir ext
  mapM putStrLn flst
Запускаю IDE Haskell, загружаю MyFilesHs5.hs, пока всё хорошо:
Haskell
1
2
3
4
5
6
GHCi, version 8.0.1: [url]http://www.haskell.org/ghc/[/url]  :? for help
Prelude> :cd C:\Users\admin\Documents\MyHaskell
Prelude> :load "MyFilesHs5.hs"
[1 of 1] Compiling Main             ( MyFilesHs5.hs, interpreted )
Ok, modules loaded: Main.
*Main>
Далее Вы забыли, что пишете для обычных людей. Совсем непонятно становится.

Например, для пробы вводим:
Haskell
1
2
3
4
*Main> D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .zip
 
<interactive>:9:30: error: parse error on input ‘\*Main>
Получили "апперкот"!!

Пробуем фактическую директорию: C:\Program Files\Haskell Platfopm (картинка ниже). После ввода строки нажимаем Enter.

Опять получаем по зубам, ниже.
Haskell
1
2
3
4
*Main> C:\Program Files\!Haskell Platfopm\lab-7>cf-ji c:\!send .hs
 
<interactive>:10:35: error: parse error on input ‘\*Main>
Понемногу пропадает желание связываться с такими кодами. Приходится многократно переспрашивать и уточнять.
Вроде как тянем кота за хвост. Поэтому появляется моё молчание.

Сами Вы догадаться не сможете, что объясняете новичку, а не _Ivana?

Вместо банальщины: надо прилежно учиться... Можете упрекать меня в ограниченности...

Ниже на картинке — искомый каталог (директория).
Миниатюры
Число "файлов-hs" в программе HaskellPlatform-8.0.1  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
06.09.2016, 10:44
balky02, да, я пишу для обычных людей. Но для тех, кто понимает, что запускать нужно исполняемый модуль, у которого имя будет MyFilesHs5, а не cf-ij (как у меня). У человека, который изучает программирование, я могу предположить понимание этого простого факта? Да и директорию нужно задавать не мою (c:\!send), а свою... Ну, ты даешь!
0
Заблокирован
06.09.2016, 11:30  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Да и директорию нужно задавать не мою (c:\!send), а свою... Ну, ты даешь!
Catstail!
Какую информацию Вам ещё надо предоствить? Напишите.

У меня три диска, картинка ниже:
С — основного назначения.
D — всегда пустой, как резервный.
E — только для архивации.

Искомая директория: C:\Program Files\Haskell Platfopm — здесь ведём подсчёт файлов-hs
Запускаемый файл: MyFilesHs5.hs (отрихтованный код)

Требуется написать только одну строку!
Не знаю, что означает у Вас: D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .zip

Объяснять не надо, только внесите исправления в мою запись, ниже.
Например, пишем после *Main> — так правильно:

Haskell
1
C:\Program Files\!Haskell Platfopm\lab-7>MyFilesHs5.hs c:\!send .hs
Миниатюры
Число "файлов-hs" в программе HaskellPlatform-8.0.1  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38189 / 21124 / 4307
Регистрация: 12.02.2012
Сообщений: 34,730
Записей в блоге: 14
06.09.2016, 11:46
Цитата Сообщение от balky02 Посмотреть сообщение
Какую информацию Вам ещё надо предоствить?
- мне от тебя ничего не надо.

Цитата Сообщение от balky02 Посмотреть сообщение
Не знаю, что означает у Вас:
D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7>cf-ji c:\!send .zip
1) D:\OldPC\!Funct_Prog\!Haskell\MySrc\lab-7 - это МОЯ текущая директория
2) cf-ji - имя МОЕГО исполняемого файла
3) c:\!send - имя МОЕЙ директории
4) .hs - расширение файлов, которые ищутся

Я предполагал, что взяв мой (или Ivann-ин) исходник, Ты его превратишь в exe-файл. Сделать это можно так:

1) сохранить мой исходник под любым именем в любой директории (напр. в директории c:\!Send под именем fcount.hs)
2) Запустить cmd.exe и перейти в c:\!send (у тебя будет твоя директория, где ты сохранил fcount.hs)
3) В командной строке ввести команду: ghc -prof -fprof-auto -rtsopts fcount.hs
и дождаться успешного завершения
4) в командной строке ввести fcount ИМЯ_ДИРЕКТОРИИ_В_КОТОРОЙ_ЛЕЖАТ_ФАЙЛЫ .hs
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2016, 11:46
Помогаю со студенческими работами здесь

Задача python / pascal: В первой строке программе подается на вход число натуральное число n, не превышающее 1000
В аркадной компьютерной игре звездный истребитель может выполнить одну из пяти команд. Команды игрока компьютеру подаются вместе с блоком...

Открытие файлов в программе
Как сделать открытие файла при перетаскивании на окно созданной программы? Также хотелось бы сделать открытие с помощью этой программы по...

Обновление файлов в программе
Есть программа(Лаунчер) в ней есть возможность скачать файлы программы и запускать после распаковки. Интересует можно ли сделать обновление...

Записать в выходной файл умноженное каждое чётное число на первое отрицательное число файлов.
Записать в выходной файл умноженное каждое чётное число на первое отрицательное число файлов.

Написать программу "Угадай число". В программе задается число. С ним она сравнивает числа, вводимые с клавиату
с помощью GOTO


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru