سؤال

لقد وجدت الكثير من المعلومات المفيدة حول استخدام Agda كنظام إثبات.لم أجد أي معلومات تقريبًا حول استخدام Agda لكتابة برامج قابلة للاستخدام.لا يمكنني حتى العثور على مثال "hello World" الذي يجمع مع أحدث إصدار من Agda.

لذا،

  1. هل هناك أي دروس جيدة حول Agda كلغة برمجة؟

  2. هل هناك لغات أخرى ذات طبيعة مماثلة (مكتوبة وظيفية كسولة بشكل مستقل) لديها وثائق أكثر نضجًا لاستخدامها كلغة برمجة؟(لقد عثرت على الكثير من الوثائق الرائعة حول Coq، ولكن مرة أخرى، لم أجد عبارة "Hello World").

هل كانت مفيدة؟

المحلول

لطباعة سلسلة في أجدا، تحتاج إلى ليب الأمراض المنقولة جنسيا.يمكنك العثور على مثال "مرحبا بالعالم". هنا لأجدا 2.2.6 و ستد ليب 0.3.لا يعمل هذا المثال مع Agda 2.3.0 وstd lib 0.6 الحاليين.قرأت بعض المصادر في std lib 0.6، ووجدت أن المصدر التالي يعمل:

module hello where

open import IO.Primitive using (IO; putStrLn)
open import Data.String using (toCostring; String)
open import Foreign.Haskell using (Unit)

main : IO Unit
main = putStrLn (toCostring "Hello, Agda!")

لتجميعها، تحتاج

  1. احفظه في "./hello.agda"
  2. قم بتنزيل lib-0.6.tar.gz، وقم بفك ضغطه في مكان ما، مثل DIR
  3. تثبيت القرص المضغوط DIR/ffi && cabal
  4. agda -i DIR/src -i .-ج مرحبا.اجدا

على جهاز MacOSX Lion الخاص بي المزود بـ ghc-7.4.2 وcabal-1.16.0، يعمل هذا المثال بشكل جيد.أحصل على برنامج قابل للتنفيذ اسمه "hello" بحجم 19.1M.

نصائح أخرى

هذا أمر حديث العهد، ولكن يومًا ما قد يصبح موردًا مفيدًا:

https://github.com/liamoc/learn-you-an-agda

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top