К основному контенту

Практичность языков программирования

В процессе изучения F# возникла необходимость реализации алгоритма  с использованием базовых конструкций языка, а именно выход из цикла по условию. Все что удалось найти в сети - это генерация и перехват исключения. Тогда мой взор вновь обратился к императивным языкам.
Задача: реализовать поиск элемента массива перебором.
Предлагаю сравнить и оценить качество реализации подобной задачи на F#.
C#:
using System;

namespace cs1
{
    class Program
    {
        static int FindIdex<T>(T[] array, T e) where T : IComparable
        {
            for (int i = 0; i < array.Length; i++)
                if (array[i].CompareTo(e) == 0)
                    return i;
            return -1;
        }
        static void Main(string[] args)
        {
            int i = FindIdex(new int[] {1,2,3,4,5,6,7,8,9}, 3);
            Console.WriteLine($"index 3 = {i}");
        }
    }
} 
D:
import std.stdio;

int findIndex(T)(T[] array,T e)
{
    foreach(i,c;array)
        if(c==e)
        return i;
    return -1;    
}

void main()
{
    auto arr = [1,2,3,4,5,6,7,8,9];
   
    writeln("index 3 = ",findIndex(arr,3));
    writeln("index 10 = ",findIndex(arr,10));
}
 
Код на ди выглядит более простым и понятным. 
Обобщенное программирование на сишарпе заставило 
явно указать требование о реализации оператора сравнения,
 ди знает об этом на момент компиляции.

Комментарии

Популярные сообщения из этого блога

Кирилица в Arch Linux

После вчерашних обновлений в консоли Arch Linux при выборе русской локали вместо букв печатаются белые квадратики. Очевидно, что по какой-то причине не загружается прописанный в rc.conf шрифт. Временное лекарство от этого: выполнить команду setfont cyr-sun16 . Еще у меня в момент начальной загрузки появляется рябь на экране как от сильных электромагнитных помех в ЭЛТ, хотя у меня ЖК. Может быть это как-то связано.

Сортировка массивов в groovy

Любой массив в java и groovy можно отсортировать статическим методом: Arrays.sort(c); причем это будет очень быстро сто тысяч элементов типа int сортируются за 1 секунду на celeron M 1,8 Mg. Если это массив объектов можно использовать перегруженный метод Arrays.sort(c,comporator);

Arch Linux - руссификация консоли

Вчера, придя с работы, как всегда затеял InstallFest. Уже практически не задумываясь установил свежий арч. И тут заметил что в tty вместо русского - квадратики. Под утро нашел таки сообщение на форме, что в этом виноваты дрова от видео. Там правда речь шла о нвидиа, а у меня ати. Буду пробовать. И еще в lxterminal обратил внимание что сообщения на русском, а то что я вводил на русском потом возвращается системой в виде юникод-символов. Вот такие дела. UPDATE: драйвер не причем. переустановил в консоли(до установки X) по прежнему квадратики вместо букв. неужели придется переключатся на инглиш? Заметил что initscripts скачался c какого-то зеркала не с яндекса. возможно причина в нем.