تحويل بايثون إلى حساب التفاضل والتكامل هاسكل / لامدا
-
06-07-2019 - |
سؤال
ما هو كود بايثون في حساب التفاضل والتكامل هاسكل ولامدا؟
def f1():
x = 77
def f2():
print x
f2
f1
محاولتي في حساب التفاضل والتكامل لامدا
\x. 77 (\x.x)
المحلول
هاسكل:
f1 :: IO ()
f1 = let x = 77
f2 = print x
in f2
main :: IO ()
main = f1
أو لكي تكون مثل حساب التفاضل والتكامل لامدا الخاص بك:
f1 :: Int
f1 = let f2 = x
x = 77
in f2
main :: IO ()
main = print f1
نصائح أخرى
في هاسكل:
f1 = f2
where x = 77
f2 = print x
إعادة البناء، نظرًا لأن IO يربك المشكلة:
f1 = f2
where x = 77
f2 = x
إعادة بناء التعليمات البرمجية:
f1 = x
where x = 77
إعادة البناء، لأنك تريد المتغير؟
f1 = (\x -> x) 77
تقليل بيتا:
f1 = 77
ولديك برنامجك في هاسكل.
حساب التفاضل والتكامل لامدا لا يحتوي على أرقام حرفية (على عكس هاسكل)، لذلك يجب علينا استخدامه أرقام الكنيسة.لذلك يتم تجميع "77" لحساب التفاضل والتكامل لامدا:
f1 = \f.\x. f (f (f (f ( ... ) x)))
وهناك برنامج بايثون الخاص بك في حساب التفاضل والتكامل Lambda.
لا أعرف لغة بايثون، لذا قد أكون مخطئًا تمامًا، ولكن هذا هو تفسير هاسكل الخاص بي.
f1 = let x = 77 in show x
أو بما أن لديك ثابتًا هناك
f1 = show 77
في حساب التفاضل والتكامل لامدا:
λprint. print 77
لا تنتمي إلى StackOverflow