Advertisement
logicmoo

Untitled

Jan 29th, 2018
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 4.07 KB | None | 0 0
  1. CL-USER> (DEFUN do-four NIL (DO ((temp-one 1 (1+ temp-one) )(temp-two 0 (1- temp-two) ) )((> (- temp-one temp-two) 5) temp-one)() ) )
  2. ```
  3. ```prolog
  4. :- lisp_compiled_eval(
  5.                       [ defun,
  6.                         u_do_four,
  7.                         [],
  8.  
  9.                         [ do,
  10.  
  11.                           [ [u_temp_one, 1, ['1+', u_temp_one]],
  12.                             [u_temp_two, 0, ['1-', u_temp_two]]
  13.                           ],
  14.                           [[>, [-, u_temp_one, u_temp_two], 5], u_temp_one],
  15.                           []
  16.                         ]
  17.                       ]).
  18. ## COMPILER
  19. :- side_effect(generate_function_or_macro_name([name='GLOBAL', environ=env_1],
  20.                                                u_do_four,
  21.                                                kw_function,
  22.                                                f_u_do_four)).
  23. % 1,576,189 inferences, 0.399 CPU in 0.422 seconds (95% CPU, 3950916 Lips)
  24. lambda_def(defun, u_do_four, f_u_do_four, [], [[do, [[u_temp_one, 1, ['1+', u_temp_one]], [u_temp_two, 0, ['1-', u_temp_two]]], [[>, [-, u_temp_one, u_temp_two], 5], u_temp_one], []]]).
  25. arglist_info(u_do_four, f_u_do_four, [], arginfo{all:0, allow_other_keys:0, aux:0, body:0, complex:0, env:0, key:0, names:[], opt:0, req:0, rest:0, sublists:0, whole:0}).
  26.  init_args(x, f_u_do_four).
  27.  
  28. ```
  29.  
  30. ### Compiled Function: `U::DO-FOUR`
  31. ```prolog
  32. f_u_do_four(FnResult) :-
  33.         CDR=[],
  34.         catch(( ( BlockExitEnv=[bv(u_temp_one, 1), bv(u_temp_two, 0)|CDR],
  35.                   catch(( call_addr_block(BlockExitEnv,
  36.                                           (push_label(do_label_1), get_var(BlockExitEnv, u_temp_one, Temp_one_Get26), get_var(BlockExitEnv, u_temp_two, Temp_two_Get27), 'f_-'(Temp_one_Get26, Temp_two_Get27, PredArg1Result29), (PredArg1Result29>5->get_var(BlockExitEnv, u_temp_one, RetResult30), throw(block_exit([], RetResult30)), _TBResult=ThrowResult31;get_var(BlockExitEnv, u_temp_one, Temp_one_Get34), 'f_1+'(Temp_one_Get34, Temp_one), get_var(BlockExitEnv, u_temp_two, Temp_two_Get35), 'f_1-'(Temp_two_Get35, Temp_two), set_var(BlockExitEnv, u_temp_one, Temp_one), set_var(BlockExitEnv, u_temp_two, Temp_two), goto(do_label_1, BlockExitEnv), _TBResult=_GORES36)),
  37.  
  38.                                           [ addr(addr_tagbody_1_do_label_1,
  39.                                                  do_label_1,
  40.                                                  '$unused',
  41.                                                  BlockExitEnv,
  42.                                                  (get_var(BlockExitEnv, u_temp_one, Get_var_Ret), get_var(BlockExitEnv, u_temp_two, Get_var_Ret46), 'f_-'(Get_var_Ret, Get_var_Ret46, _1724), (_1724>5->get_var(BlockExitEnv, u_temp_one, Temp_one_Get16), throw(block_exit([], Temp_one_Get16)), _1740=ThrowResult;get_var(BlockExitEnv, u_temp_one, Temp_one_Get18), 'f_1+'(Temp_one_Get18, Set_var_Ret), get_var(BlockExitEnv, u_temp_two, Temp_two_Get19), 'f_1-'(Temp_two_Get19, Set_var_Ret48), set_var(BlockExitEnv, u_temp_one, Set_var_Ret), set_var(BlockExitEnv, u_temp_two, Set_var_Ret48), goto(do_label_1, BlockExitEnv), _1740=_GORES)))
  43.                                           ]),
  44.                           []=LetResult
  45.                         ),
  46.                         block_exit([], LetResult),
  47.                         true)
  48.                 ),
  49.                 LetResult=FnResult
  50.               ),
  51.               block_exit(u_do_four, FnResult),
  52.               true).
  53. :- set_opv(u_do_four, symbol_function, f_u_do_four),
  54.    DefunResult=u_do_four.
  55. ## EXEC
  56. % 399 inferences, 0.000 CPU in 0.000 seconds (99% CPU, 1376161 Lips)
  57. DO-FOUR
  58. ```
  59. ```cl
  60. CL-USER> (is = 4 (do-four) )
  61. ```
  62. ```prolog
  63. :- lisp_compiled_eval([sys_is, =, 4, [u_do_four]]).
  64.  
  65. % (   kw_special
  66. % ->  sf_sys_is
  67. % ).
  68. ## COMPILER% 167,406 inferences, 0.041 CPU in 0.041 seconds (100% CPU, 4120782 Lips)
  69. :- sf_sys_is(ReplEnv, =, 4, [u_do_four], Is_Ret).
  70. ## EXEClisp_format('$ARRAY'([*],claz_base_character,"OK: ~a is ~a to ~a~%"),[4,=,[u_do_four]])
  71. % 161,743 inferences, 0.053 CPU in 0.053 seconds (100% CPU, 3067592 Lips)
  72. T
  73. ```
  74. ```cl
  75. CL-USER>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement